After many hours of searching and experimenting I finally discovered this solution, thanks to forum posts from other people.
First the problem... Logitech SetPoint software is not allowed to set keystroke bindings in many applications, including games like Battlefield 2.
The work around is to run SetPoint.exe as Administrator. Unfortunately this creates a new problem. Vista will not allow an elevated program run at startup. You will get a 'startup program blocked' dialog on EVERY startup.
So, the full workaround is:
1) Set SetPoint.exe properties to run as Administrator.
2) Remove/Disable SetPoint.exe from Startup programs. Eg. Remove from registry, or Run msconfig and disable. (You still may get a warning bubble, but won't have to deal with it.)
3) Launch SetPoint as a scheduled task on startup.
Follow these instructions:
It only takes a minute or two to follow.
If anyone finds a better solution, please do share, but don't waste your time with 'just disable UAC / Defender' etc. thanks.
Note that you can use these same instructions to run other blocked programs.
Feel free to harass Logitech about updating their drivers.