Greetings,
What you're after is available with either OpenBSD or Linux.
Now, the OpenBSD Way is still unknown to me. I only assume this functionality exists there because multiple routing tables were implemented in its kernel at some point over the last couple years. If you're on the OpenBSD road, read the documentation carefully and ask your questions intelligently or Theo will swallow your soul. 😃
If you're running Linux, I would direct you to:
http://tinyurl.com/yes3g2
I would be happy to have provided a specific solution, but I haven't actually implemented such a configuration. I came upon this document when working on a failover solution for a network that has two internet links: cable (fast and sometimes unstable) and fiber (slower (rate-limited) but rock solid).
Good luck!
Regards,
Stephen