For example, I would like to keep a lot of music files synchronized on two different hard drives. What is the most efficient way to do this? The more automated the method, the better!
rsync is pretty standard
unison is good if you want to transfer data in both directions
I've been using GetDropBox for some time to synchronize files across machines. Its up and running now and runs across Windows, Mac, and Linux boxes.
For a Windows system where you're wanting to do it across the internet, Live Mesh is pretty good; if you're syncing folders that are accessible from one machine (ie server to laptop) then SyncToy is a really good piece of software.
For simple syncing between multiple computers, I used to use FolderShare, which is now Windows Live Sync. Works over a local network or the Internet, but is limited to 20,000 files per "library". It's free.
I'm now using SugarSync, which also syncs multiple computers but in addition maintains copies of all files on their servers as well for backup and/or for accessing the files from a non-synced machine. They've got a 45-day free trial but after that you pay based on how many gigs you're syncing. I'm on the $100/year 60GB plan. Because all files are necessarily synced to the cloud, it's not nearly as speedy as Live Sync if all your synced machines are on the same local network.
For Windows based systems, take a look at MirrorFolder. We use it as a backup to the backup on some servers. Works quite well and is very easy to use and setup. It's not free, but it is only $40. Good luck!
Folders Synchronizer (by softoBe) works great on my Mac.