We (as in Linux distros) are going to have to officially support some kind of unioning file system at some point. I decided to review the current options in what turns out to be a three part LWN series. Part 1 is publicly available, part 2 is LWN subscriber-only for a few more days, and part 3 I will write at the last minute on Monday and Tuesday, as is my wont.
If you want to hack on union mounts, check out my Union Mounts HOWTO:
Includes a kernel config, git trees with all the patches applied, and a disk image for UML that will automatically union mount two ext3 file systems before dumping you into a shell. Have at it!