It is patently obvious that the keyboard was designed for English typing, as opposed to typing
or anything else that heavily relies on non-alphanumeric characters (like coding). Frustrated by the ergonomics and speed of this, I have finally decided to take matters into my own hands, I have used the Microsoft Keyboard Layout Creator (I use the XP virus) to obtain a partial solution (not original) to the problem.
Essentially, I looked at the keyboard and asked myself which keys are pressed more commonly in the shifted position than the unshifted position. My answer (not backed up by any actual data) is the seven keys.
$ ^ ( ) _ { }
So I remapped those to swap their shifted and unshifted modes.
For good measure I swapped the popular \ with the unpopular and far away ;.
This I believe is still only a partial solution, for example the characters 0 – + should probably replace ` 7 8 as being unshifted, though this has not been carried through as yet for some bizarre desire to not have my keyboard behaving too differently from how it looks.
There are unfortunately some drawbacks, I’ve noticed that typing \p is awkward, and that it makes me noticeably slower now when typing on other machines, but I try to do all my texing on my laptop. This remapping also solves the asthetic problem I always had with a keyboard which was that the minus sign was considered more important than the plus sign (who cares about hyphens anyway?) and now I have them on an even footing, although as noted above, they really should both become unshifted.