Helping people with computers... one answer at a time.
Outside of a few standard layouts, truly customizing the layout of your keyboard is typically harder than you might expect.
How can I disable my "Windows" key? Or for that matter, remap my entire keyboard?
If your needs are "standard" then the approach while well hidden is pretty easy. However if you want a truly arbitrary mapping this is one of those areas that you'd expect to be a lot easier than it turns out to be.
By "standard" I really mean "something that Microsoft has already thought of". That boils down to two things: a predefined set of foreign keyboard layouts and the Dvorak keyboard layout. (Dvorak is an alternative to the standard QWERTY layout that you can read much more about here.)
If you want to do something non-standard though, things get very interesting and possibly complicated.
For some types of changes such as disabling the Windows key it's possible that your keyboard driver already has a solution for you. I happen to use one of Microsoft's keyboards, and the Intellitype Pro software that is installed includes the ability to do exactly that: configure most of the "special" keys including disabling the Windows key. (Control Panel -> Keyboard -> Key Settings has a list of keys that can then be individually configured.)
It's possible that your needs might also be met by keyboard macro program. These programs allow you to assign sequences of keystrokes or actions to a single key. This could be a viable option if you're looking to simply change the function of a few keys. Of course, you could assign new single keystroke actions to all your keys. The specific capabilities of the programs vary so be sure to check them out to make sure they meet your needs. There are several including EZ Macros, Hot Keyboard, and Macro ToolsWorks.
If you really want to remap the keyboard in arbitrary ways without using a macro utility I have found one utility: Keyboard Layout Manager. This tool is designed to do exactly what we've been talking about: reassign the functionality of individual keys on the keyboard.
And finally, Microsoft also documents the Scan Code Mapper for Windows, the technique to add entries to the registry to perform the mapping manually.
Update 06-Feb-2004: I just became aware of a new free keyboard remapper that might be of interest: KeyTweak. If you try it let me know how it works.