that 5670 will serve your purpose just fine, hell the 520 might too. but neither of those cards are really all that good for gaming especially the games that you are referring to.
The gtx on the other hand is significantly more powerful and trumps the 5670 easily. I would not purchase the 520 at all.
Here is the benchmark for GTX460 (same exact model that is on NCIX)
http://www.techpowerup.com/reviews/MSI/GTX_460_HAWK/7.html
Here is the bench for the 5670 and 520
http://www.techpowerup.com/reviews/Zotac/GeForce_GT_520/7.html
both the benches are for battlefield 2, as you said you wanted to play bf3 with this card. BF3 of course will have higher system requirements.
Those benches are of course on max settings, so if you dont care about playing at minimum or low or middle, you could buy the gt 520 for 50 bucks and, like you said, wait for pci 3.0, I still wouldn't.
I would most definitely jump on this offer considering the 5670 is about $80.00, but the performance of the GTX460 more than makes up for the $20.00 difference.
recommend PSU for the GTX460 is 450 to 500 watts (card uses about 160 at max load)
Hope that helps.