There must be a zillion ways to do this (rsync, cpio, even cp) so I'll throw in my personal favorite:

# cd /old
# tar --one-file-system -cf - . | (cd /new && tar xpf -)


--Greg