I have figured out a way to solve my problem. Using tcpdump I was able to determine that the problem always occurred when the exchange was doing SACK (Selective Acknowledgement). This is a feature turned on by default in the 2.2.x kernels (actually since 2.1.??). It is intended to increase performance in the face of packet loss. Turning SACK off has solved the problem. It also explains some of the variability I have seen. Some sites are not SACK compatible, so the download happens fine. Some sites do not generate the packet loss problems which start SACK options being exercised (at least not all the time). Later, the same site might be much more congested and start having problems.
The way I turned off SACK is to execute the following (as root): echo "0" > /proc/sys/net/ipv4/tcp_sack Since this has corrected the problem, I have updated /etc/init.d/networking to include this step. I am not sure why SACK is not working properly. At least now I know what to search for and have found several references on the kernel mailing list regarding problems seen with SACK implementations. There seems to be a good deal of disagreement about whether the problem is in the linux implementation or the implementation used by various ISP's. Since I get these problems trying to download Debian files, I suspect I am talking linux to linux. As time permits I will try to troubleshoot this further and document it with tcpdump output. For now, I would like to see if the above fix corrects the problem for others who are seeing the same timeout problems. Regards, Jeff