http://solair.eunet.yu/~minya/Programs/klm/index.html
Not free, but great for remapping keyboard layout. Can remap even the shift-, alt- and ctrl-layers.

(Via Keyboard Layout Manager)