If you're able to do something with the overall bandwidth limit (as a user), your ISP has a bad configuration. With Linux I'd use build in traffic-shaping (QoS options in the kernel). My personal favourite method is CBQ. You can read about it more in Linux Advanced Routing & Traffic Control HOWTO (
http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/, chapter 9 and later).
With proxies it's harder - when the traffic is encrypted, the ISP can't do anything with it. Of course, users can be limited to using only port 80 (and a small number of others), but the restriction is then too big.