Another good alternative is to remap the infrequently used Caps-Lock key to Esc (what Emacs users remapped to Control for ages). http://c2.com/cgi/wiki?RemapCapsLock
I am an avid vimmer, but I sometimes use Emacs. I have capslock mapped to ESC, and it works well in emacs. I am pretty comfortable with C-{some_key}. It's the M-C-{some_key} that are a pain. ESC-C-{some_key} is what I use and since I have my capslock mapped, it's convenient.
I write a lot of shell scripts and C where $UPPER_CASE variables are common. Is it still worth remapping Caps-Lock? (The problem is it would be remapped system-wide, not just in Vim.)