This is my (almost bullet-proof) setup, suitable for technical people (I rely mostly on Linux, but a similar solution can be developed for any platform). It requires one off-site computer under your control, and connected to Internet (my office workstation).
I maintain three copies of all my important files. One is the original files on my home desktop. Once in a while I copy all important files to an external USB hard drive next to my desktop. The desktop runs Windows XP, so I use free Windows program SyncBack. Most of files (photos, videos) are copied as full backup, some less important ones (webs server log, emails etc) are copied as mirror. I enable hash codes comparison ("Use slower but more reliable method of file change detection" in "Compare Options") - much slower, but will catch errors from a failing hard drive (either internal or external). This is very important - recently I had my first case of an old (5 years old) photo file becoming corrupt on my desktop hard drive. The file size was not affected, so if not for this hash comparison feature, I wouldn't catch it.
Next, I use Linux program "rsync" set up for full backup copy (with hash computation and comparison) from my USB hard drive to the remote Linux workstation (my office computer). This can either be done over Internet (securely encoded inside an SSH tunnel) - if the amount to copy is not huge; or I can bring the external hard drive to my office, and do it over USB. I wrote my own Bash script to automate the process. I can share it if anyone is interested.
I plan to replace the external hard drive every 3-4 years, or if I see signs it's failing.
The above setup has these advantages:
- Three copies is much more reliable than two.
- Hash computation and comparison on both copying stages ensures that all my files are bit-identical, so I can catch early signs of a failing hard drive, and recover corrupt files. I can also catch any data corruption which happened during the copying (over USB or Internet).
- The fact that the three copies are on different OS (Windows and Linux) reduces the risk that a bug/worm will wipe out all of the data.
- The fact that the third copy is off-site (12 km away), greatly reduces the risk of fire or the elements destroying all my data.
I believe the largest remaining risk is a chance of a human (my) error. One day, doing some major procedure (moving to some future medium technology, moving to new OS etc.), I might do something stupid, and wipe out some/all the data.
Also, setups of this kind are "high maintenance" - it works as long as I am actively doing it. If I'm gone or incapacitated, this will fail.
Strangely enough, the most old-fashioned way of archiving photos - printing them - can be more reliable, because it is (almost) zero maintenance. Just think of you finding some very old photos in your grandparents chest - they may be of poor quality, but at least they survived. And then think of your grandchildren finding an old hard drive in your chest 40 years from now - what is the chance they can recover the data? Very close to zero.
So I'm okay when my wife tells me that once in a while we have to print some of our family photos, for albums. 