I guess there's nothing wrong with complicated firewall solutions, if you've got the time to set em up. But if you just need to limit the bandwidth of a certain process, you can use trickle, a portable lightweight userspace bandwidth shaper. I find it works well before ssh in an rsync command:
rsync -auvPe "trickle -d 80 ssh" user@host:/src/ /dst/
432.   Who are the Steve Police?
  [jake/2006-05-21]
311.   What are the YAK's most popular FQAs?
  [strick/2002-10-04]
301.   Where can I find an interview with noted security researcher Gene Spafford?
  [rupe/2002-01-09]
284.   whats the best way to encode MP3s on linux?
  [jesse/2001-11-13]
225.   What do I use to write cool Palm software?
  [combee/2001-11-01]
( combee/2001-09-21 )
220.   Where can I find serial/parallel controllable, backlit LCD screens?
  [rupe/2001-05-30]
( sidd/2001-05-30 )
139.   How do real programmers write code?
  [rupe/2000-10-25]
138.   How can I become an asshole in five easy steps?
  [chota/2000-10-22]
68.   What are Nana's rats names?
  [nana/2000-02-28]
65.   Where can I get help with my Physics homework?
  [strick/2000-02-22]
25.   What does CLEC stand for in the telco business?
  [simon/2000-01-22]
( jesse/2000-11-22 )
8.   Does strick have a home page?
  [strick/2000-01-19]