First of all you must check both discs (internal and external) for bad sectors or other problems.
Tools for this can be:
GsmartControl
Install by typing in console:
sudo apt-get install gsmartcontrol
Perform some tests to see if there's something wrong.
I also really advise you to read The Beginner’s Guide to Linux Disk Utilities
Also check /var/log/messages for errors or run dmesg after the copy of files failed.
If unmounting of the filesystem is needed, the best option is to use a livecd with a set of tools to help diagnose and repair a bad filesystem, for example:
Hirens Boot CD
Download and burn into a CD, boot that CD, and use the existing tools for Disc Diagnose and Repair.
Go to your discs manufacturer website, and look for any disc utility they can have, to scan for problems. I know that Maxtor and Samsung, have tools of their own.
Important question: Your external HDD and Pendrives work OK in other operating systems or in another PC?
This is important, as it can help rule out the defective hardware (the external drives, your USB ports, or your internal disc)