This page covers everything you need to know for remapping keys, creating keyboard shortcuts, key macros, or keyboard layout.
Let's start with the simplest solution.
AutoHotkey is a powerful scripting engine that also lets you assign keys to any script or run any app, or insert some text, or act as pressing other keys. This is the most versatile.
To get started, see:
Microsoft IntelliType is a feature rich keyboard macro software. It comes with Microsoft keyboards.
IntelliType lets you swap modifier keys, disable them, or set F keys or special keys to launch any app. The key sets can be different for each app. It also has a basic keyboard macro ability for mostly gaming purposes.
For screenshot, basic intro, and its limitations, see: Microsoft IntelliType Review.
If you have a Microsoft keyboard, and want to use IntelliType to the fullest, see: Microsoft IntelliType Hacks.
Note: you can't use IntelliType without a Microsoft keyboard. I recommend:
The following i have not used, but heard good things about them.
Microsoft Keyboard Layout Creator By Microsoft. @ http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx
X-Mouse Button Control By Phillip Gibbons. @ http://www.highrez.co.uk/downloads/XMouseButtonControl.htm
Most important thing about keyboarding is actually a good keyboard hardware. Gaming keyboard offers you unparalleled programmability. With gaming keyboard, you can easily config your keys, and they will be set in the keyboard firmware. You can plug-in the keyboard in any computer and still have your settings.
I recommend the following: