ControllerMate does this. At work I use the Microsoft Natural ergonomic keyboard and a Logitech mouse. ControllerMate has hardware profiles for both, and I have many of the MS-specific keys remapped to other functions.
It not only allows you to remap one key to anotherLike yours, but allows you to perform key combinations with a single keymy keyboard also has an otherwise useless Mail button. For exampleWith Controllermate open, if I havepress the up/down keys on my mouse setMail button while viewing the Microsoft keyboard profile, the list of available key sequences automatically jumps to switch between tabs in Cocoa appsthe one it just received. This function is usually mappedYou can then program that key to CommandShift] / [do whatever you like, even when ControllerMate isn't open.