In short, HTTP and all other protocols that rely on the TCP checksum for error detection are a poor choices for transferring large files.
I'd run memtest86 or memtest86+ just to make sure you don't have a problem with corrupted RAM. However, the dirtly little secret about TCP is that its error checking is terrible. Its 16-bit additive checksum was chosen not for its ability to detect errors, but because it's dead simple to calculate on 1970s-erra hardware, in a platform-independent (endian-agnostic) way. Better error detection at lower levels usually hides the problems with the TCP error detection, but these checksums (such as the ethernet CRC-32) aren't end-to-end, so you're pretty well protected from bits getting scrambled on the wire/fibre, but much less so from bits getting scrambled as routers copy them from one wire/fibre to another along the way.
The solution is to use a higher level protocol with a better checksum whenever possible. HTTPS uses TLS/SSL, which has a very strong end-to-end integrity check, so use HTTPS instead of HTTP for file downloads whenever possible. Bittorrent, Gnutella, and many other P2P protocols also use strong checksums along with efficient retransmission of corrupted blocks. (Note that Kaaza/FastTrack is a notable exception, using a terrible terrible checksum that protects a smaller and smaller percentage of the bytes from corruption as file size increases.)
I should really write a Python script that will download a file and check its md5sum, downloading a second time if the md5sum is wrong, and seeing where the two downloads differ, then getting a third download of just the corrupted bytes to figure out which values are correct. I wrote a similar script for the Windows 7 Beta DVD because I was getting such a high corruption rate, but that read checksums out of a .torrent file and used plain HTTP to download all of the actual data from Microsoft. I also have a prototype Apache plugin lying around somewhere that adds makes Gnutella TigerTree checksums available to Gnutella-aware HTTP clients.