I had a need for a case insensitive filesystem in linux. Specifically, I wanted to have a Linux perforce client handle filenames the same way that the Windows client does. I did not want to sacrifice reliability by using something like fat32, and samba seemed like overkill with a handful of drawbacks. There is an implementation of ext3 called ext3ci that behaves like I want, but I was not ready to dedicate a filesystem to the cause.
I ended up tearing apart a neat FUSE filesystem that does character set conversions (convmvfs) and turning it into a FUSE filesystem that mirrors another filesystem but is case preserving instead of case sensitive.
I make no claims of robustness or performance, just that it met my needs and might be a useful starting point for someone with a similar problem. If the case sensitive filesystem backing a mount point has multiple files with the same name but different case, this will arbitrarily and silently choose one.
A bazaar branch is available here: http://www.unprompted.com/bzr/cimirror/