Just thought I'd share this info with you guys (as well as depositing it in the hive mind)...
I've recently bought a lovely clacky Cherry mechanical keyboard, I love it. It's an absolute pleasure to type on, it's not got the tactile MX Blue key switches but the linear MX Black ones.
Anyway, since I use the keyboard with both a couple of Linux boxes and a couple of OSX boxes (plus a windows VM), I wanted to firstly get the keyboard layout correct (ie. put the # symbol on the actual key and get the @ and " keys the right way round to match the silkscreening on the keycaps). I ended up using a utility called Ukelele:
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=ukeleleIt allows you generate completely new custom keyboard layouts for OSX easily. It also helped me remap my \ and ˋ keys which, for some reason were physically swapped over according to OSX.
My second task was to harmonise the various command/option/control keys so they behaved the same in all OS'. An app (and probably a kext) called KeyRemap4MacBook came to the rescue.
http://pqrs.org/macosx/keyremap4macbook/Using this (install requires a restart) I managed to remap the ctrl key on my keyboard to behave like the command key. So copying something to the clipboard on OSX/Linux/Windows is now exactly the same key sequence on all platforms. You can also set keymaps depending on the application in focus so I'm running in a terminal window, it turns the mapping of that key off so I can still ctrl+c a process to death. I've always found using the command key a pain to use with my little finger, so this seems to work really well.
I also mapped the alt key to the command key, I never use the alt key on the mac, so being able to actually alt+tab between apps in OSX is wonderful. I could always map the alt key onto the command key if I wanted, but I'm not bothering for now, so I currently have three command keys lined up next to each other!
Maybe you guys already have a single app that does this all for you, but I thought I'd share my experiences with you in case you haven't.