2 ezQuake devs: We could try using the system's keyboard layout by default.
Here's how I did it in ZQuake (scroll to TranslateKeyEvent):
http://zquake.cvs.sourceforge.net/zquake/zquake/source/in_win.c?revision=1.46&view=markup
Here's an exe you can try
http://quakeworld.ru/config.

?id=261
My purpose actually was to allow chatting in Russian in Quake, so in this build the binds are still processed through the old static keymap; localized keys are used only in the console. This is necessary in a typical Russian Windows setup where there are two keyboard layouts: English/U.S. and Russian. The latter only produces Russian characters, so if you had it accidentally switched on during the game you would suddenly lose most of your movement binds. In fact, many Russians have the Russain layout enabled by default in Windows, so they'd have to press Alt-Shift every time after starting the game to be able to move.
Okay, but things are different in a typical European setup where only one keyboard layout is active at a time. It will have most of the keys in the usual places with some exceptions (say, a French layout has AZERTY in the top row instead of QWERTY). Such a layout would be perfectly suitable for use in-game I suppose.
OTOH, the use of a hardwired keyboard layout for bindings makes your configs universally functional on any system no matter what the OS language settings.
deurk, what exactly makes the English layout "desperately frustrating" for your friends? Would it be ok if your local layout was used for typing in the console, but the U.S English layout was used for binds?
You can try running http://quakeworld.ru/config.

?id=261 to see what I mean.