Large file copy operations can expose latent hardware faults, particularly in the source and destination drives, but really at any point of the transfer (as Phoshi has pointed out). The problem is especially acute when moving archives as opposed to individual files - a few bad bits in the wrong place can leave you with an unmountable iso or unopenable rar. Despite this, archives are an excellent choice for file transfer since it is easy to verify that you have made a true copy.
The process is to:
1) Generate the MD5 hash of the original archive,
2) Perform the copy,
3) Generate the MD5 hash of the copied archive,
4) Compare the results.
Any difference in the two archives will result in a failed match of the hashes and alert you to a bad copy. Under windows you can use WinMD5Free.
There are also a couple of things you can do to tune your computer and maybe identify any problems if you are having issues getting a good copy:
a) Running memtest from a linux bootable cd (or Windows 7 has something similar) will reveal problems with your ram (these typically make themselves known via the BSOD anyway but it doesn't hurt to check).
b) A disk utility such as MHDD or Spinrite can repair your source drive by moving the data from bad to good sectors, re-attempting the read until a good copy is made even from quite damaged sectors. Bad sectors are then flagged unusable. Run the same tools on the destination drive to clean out bad sectors there. (Don't use chkdsk (the inbuilt windows utility). While it is fine for correcting simple filesystem errors it will do some pretty terrible damage to your data if your drive has a lot of bad sectors and leave you nothing but a bunch of useless .chk files as compensation).
c) Change connecting cables.