Well, if you track down Frekks old Railroad Capacity thread, you will see that he came up with, what I feel, was an elegant solution to the problem.
You retain the infinite movement of RR's, but limit their CAPACITY. The capacity of your rail system was dependant on its tech level and the amount of viable track-with certain city improvements/wonders boosting capacity each turn. The idea was that, one Capacity point could be used to move one unit and, once your CP's were used up, you couldn't move anything more on your RR's until next turn.
An additional little kink in the system was that CP's generate revenue for your nation but, as you use them for military purposes, you lose that revenue. If coupled with a maintainance cost for RR's, then suddenly mass movement of units in wartime can become VERY costly. Anyway, that is just a very brief overview of his idea-if you can find his old thread, he has MUCH more detail.
Of course, a similar capacity system could be used for roads and airlifting, but in such a way that balance between land, air and sea movement was well and truly brought about.
Lastly, as for naval movement, I had two ways of making it more useful. First you could lift ALL naval movement rates considerably, but give certain marine tiles a higher movement cost-costs which are sequentially ignored by more modern units (and with modern age units being able to treat all marine terrain as road!) The second one was to have ships being able to instantly move from one friendly harbour to another-at the cost of one movement point-if no enemy ships are interdicting. If interdiction occurs, then there is still a % chance the vessel will slip by (but very small). Also, if you could have a 'naval base' terrain improvement, then you could have the same movement rule apply to these too.
Yours,
Aussie_Lurker.