the one in half life is a func_tracktrain, its brother entity, func_train is similiar and works almost the same ways so you should find this tutorial satisfactory:
http://twhl.co.za/tutorial.php?id=10To make one with glass and doors youll need to make both of them seperate trains that run with the man body of the train, so it looks like the train has glass. The door is the samebut at the end give it one or 2 more paths to simulate a door opening.