Cheers for the tip on Catmull-Rom splines. Have been playing around whilst I should be sleeping and I have now got some code plotting nicer looking maps. The code needs a lot of cleaning up though.
Now I need to figure out a good way of getting it to automatically figure out which lines are legal since there are some routes that from a simple 'station A connects to station B' approach can't take into account. I may have to add some more information to the data model that can be used to determine this.
Also, the code that produces a set of points to put into the Catmull-Rom plot needs to take loops into account, currently I'm using a simple recursive function to figure out the set of lines that need plotting starting from terminal stations.