Yesterday I send a patch to hal-devel describing a patch to add nvram polling to HAL to abstract the buttons. I did this basically for comments, and so people can try the addon and see if nvram polling worked for them.
And then, feeling less dirty, I wrote a kernel patch. I want to convert the thinkpad_acpi module to use INPUT rather than export random hotkeys using acpi events. The idea being the INPUT keycodes can be mapped using a keymap, and we can make the keys work for people without using some random custom session or system daemon.
This means you can do KEY_FN_F2 and then you can map the button in gnome-keybinding-properties just as if it was any other normal AT button, or choose a keymap in gnome-keyboard-properties so all the buttons work. We need to automate this somehow, and I've a funny feeling it might involve HAL.
The NVRAM keys (volume, mute, thinkpad) will have to be done a little more carefully as they are tied to hardware, although I think I can do that polling in the kernel quite cleanly.
I intend on submitting patches for all the machines that I can get my hands on, first in my sights is toshiba_acpi.