You can make a simple MSN control (which users can login), web authentication gateway (Horatio based), load balance (iproute2), traffic shape (QoS), simple packet filter and NAT redirects (DNAT), loadbalance and VPN gateway or roadwarrior and ...
Bash script that uses iproute2 and shapecfg (shaper.o) to limit incoming and outgoing traffic on a linux router. Also haves option for supporting more than 100 shapers via kernel patch.