I asked a question on ServerFault recently and went on to answer it with more than a bit of help from Michael. I had no idea that Linux allows you to have multiple routing tables, but it all makes sense once you work it out!