I'll leave this as a comment so someone else can extend off of what I have to say :
First, construct your train out of world brushes. Then decide where the "turning point" of the train is, and create a brush there, with "origin" texture. Drag'n drop of the entire train, and origin brush, and set the objects to a func_tracktrain I believe. Under the flags section, check the box that says "HL1 train" (I believe this keeps everything simple). Now create some info_path_tracks (I belive thats the entity name, look for an entity with the words "path_track" if you don't find exactly what I said). Give this path_track a name -- this will be where the train starts. Have the path track target the next path track, and so on (give each other a name, and target them. If you do it right, you should see a yellow line connect them in order).
Now, you remeber the origin brush embeded in your train? Place that portion of the train on the first path track (not just the origin brush, the ENTIRE train). Now set the train's first stop target to the first path track. Now enter in wheel height, train speed, and so on. These can be entered in path_tracks, and in the tracktrain.
Okay boys, add on to this? 
[addsig]