If you've got Quicksilver, just add a trigger for each F key you wish to use and have it type the appropriate number key. For example, in every virtual desktop implementation I've ever used it's control-F keys (or more rarely option-F keys), so my triggers are control-F1 simply types the character 1, control-F2 types 2 and so on. Chances are that my finger is slower than the computer and is still sitting fat, dumb and happy on the control key when quicksilver issues the '1' keypress hence ending up with control-1 which spaces interprets as me wanting desktop 1.
It's a kludge, but it works for me.