Both of the 8600s are way to slow. The 2900XT only has an advantage over a 3870 in a few cases where it's insane memory bandwidth is better utilized. On the whole though the 2900XT is too slow to make proper use of it's bandwidth, that's why the 3870 often out preforms it with it's slightly higher clock speed. The Radeon 3800 series and 2900 series aren't bad, if you can get them really cheap, but they don't do so good once you enable AA. Considering current prices though the 8800GT 512 (also known as the 9800GT) is the best option. Full speed 3870s with GDDR4 cost more now than a 9800GT. Take a look at this one
which is only $20 more than your average 9600GT. I've also seen adds for 9800GTs for $99 from tiger direct, but I really hate their site ^_^. The thing is, you have a crossfire board, like me. If you wanted to buy two cards now, two of these 3850s would be a good deal after the $25 mail in rebate
I wouldn't bother buying two more expensive 3800 series cards if that cost would exceed that of a single Radeon 4850. If you have limited funds then you could make a case to buy one 3850 or 3870 card now, and another one latter. The thing is, 3800 series cards are being fazed out for the 4600 series of Radeon cards. In that event you would have to act soon, or try to get a good deal on eBay latter.
The HD 4670 beats out the HD 3850 most of the time, and can be better than the HD 3870 with AA. I wouldn't buy anything under it (AKA nothing before HD 4k. )
9600GT is a bit faster, and the 8800GT is significantly faster than that. It's all what you want.
I personally am running an HD 4670 and just finished Stalker chernobyl with everything at max, 2xAA, 16xAF, at 1440x900 at a comfy 35-40fps, never dipping down to where I noticed it except when you enter a new area and it loads textures for 2 secs; there was a stutter or two in those cases. (With 2Gb of RAM and a 2.6Ghz AMD).