How do I copy a list of folders recursively, ignoring errors?

Check out rsync. It can do a more reliable job and only copy the files that didn't copy the first time:

rsync -vza --progress /source/ /destination/

Found the answer: ditto(1)