Just to sketch how I would try to solve this: Write an extension to the appropriate hook (see http://www.mediawiki.org/wiki/Manual:MediaWiki_hooks). When a page is requested, look up if a page with that title (case insensitive) exists. If yes, perform an external (HTTP) or internal redirect (a matter of taste, I guess) to the page with the requested title in its canonical form. If no, proceed as usual.
I've just written a patch that creates a new setting similar to $wgCapitalLinks, but which puts the whole title to uppercase, rather than just the first letter. You could then use {{DISPLAYTITLE}} on each page to determine what case actually gets displayed. Would people be interested in that (once I've ironed out the bug that completely breaks all special pages, anyway...)?