I had a strange problem: TCP freeze after HTTP GET with particular web sites (but no problem for HTTP HEAD for example) when I use machines with 2.6.17 Linux (Debian) kernel. I find why. Use of TCP window scaling changes in 2.6.17 and some broken routers don’t like this. Here is interesting discussion about use of TCP window scaling.
For my problem, fast (and bad) work around is:
echo 0 > /proc/sys/net/ipv4/tcp_default_win_scale
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling