You need to go out and download the iproute2 tools package. You can find it either via google or freshmeat. You will be required to recompile your kernel to add in a bunch of the queueing disciplines that the 'tc' program (traffic control) of the iproute2 package requires to run. Search google for 'linux advanced routing howto' to find the official (and updated over many of the copies found on the web) site for the howto.
I think, with the setup you described, you will have all your machines going into the Linksys switch which is then uplinked to 1 NIC in your linux router. Then, the cable modem will plug directly into a second NIC on your linux router. That forces all internet-related network traffic to go through your linux box which is exactly what you need for it to be able to route and control the traffic. This is how I have mine setup pretty much. We have a switch uplinked to a NIC in a linux box which is then uplinked to a Linksys router (for a separate wireless network we also have) which is then uplinked into a cable modem...
Gaidin