I don't install any of my games in Program Files x86 or x64 ... even with UAC off the nanny state controls over that folder aren't worth the hassle.
My games are installed to a Games folder instead of Program Files (also on a separate partition, but that's not necessary).
BF2 being defaulted to Program Files x64 is full of fail, as it is a six year old 32 bit game anyway. Windows is still as stupid as ever if its doing that.
When installing BF2, don't forget to patch to 1.41 first, then 1.50 afterwards.
The Steam version should update automatically.