I answered a similar question heresimilar question here a while back. My answer is copied below.
I use cp -Rfv sourcefile destinationfile
with success on a pretty regular basis.
cp
= copy
R
= maintains file hierarchies
f
= if an existing destination file cannot be opened, remove it and try again
v
= verbose mode, displays files transferred as it progresses
sourcefile
= data you want to copy
destinationfile
= directory/drive you want to copy to