I'm not a keyboard-only guy; I know when a mouse makes more sense. That being said, if I can do it from my keyboard, I do. So, as a followup to my post on the handy BetterTouchTool, I'd like to point out another free utility, KeyRemap4MacBook. It's an awkward moniker, and it's not pretty, either, but it's stable, works with any Mac (not just MacBooks, as the name would indicate) and offers drool-worthy functionality.
So, what does it do? Out of the box, it offers you dozens and dozens of options for remapping keys and key combinations to potentially more useful actions. Turn your space bar into a shift key when it's pressed in combination with another letter. Turn your trackball into the world's biggest Mighty Mouse scroll ball when you're holding control and command.
My favorite right now is remapping control-i,j,k and l to arrow keys, meaning I no longer have to move my right hand for basic cursor functions when Emacs mode isn't supported or applicable. I've also got the right option key on my aluminum Apple keyboard set up to turn my arrow keys into page up, page down, home and end when used in combination. In short, the usability of my keyboard has skyrocketed. I shudder to think what will happen the next time I jump on someone else's computer and my muscle memory has to re-adjust.
KeyRemap4MacBook can be used to improve accessibility, or to offer familiar shortcuts to switchers. You can even have it remap keys only in certain applications, meaning I can have Command-R remap to Control-R in VMWare or Fusion ... that will save me a lot of fumbles when testing multiple browsers! There's also the capability to add your own mappings, with sample definitions included. It's not exactly a breeze to customize, but it could be worse. I recall it being much more difficult to pull off this kind of extensive remapping in the past, even with tools like ControllerMate in the game.
KeyRemap4MacBook is free, and you can grab a copy at the pqrs.org website. There's even source code available, if you're savvy with C++ and wondering how it works. There's a fully-functional uninstall feature in the preference panel, so you can try it worry-free!