Well if you're willing to spend 300 dollars on a card then go for the gtx 570 which outperforms all of the cards you mentioned. Or if you want to save $40 but not get as much performance then get the 6950. Bear in mind that the 6950 has 2gb of memory meanwhile the gtx 570 has 1280mb of memory.
If I were you I'd get the 6950 since it has 2gb of memory and costs less.
yea i agree with carlosb, forget the 6870 and 560 of the 3 you picked the 6950 is best and in the budget http://www.newegg.com/Product/ProductList.aspx?Submit=E...
he also make a good point that 300 puts you in a new bracket such as 570 and 7850 cards. i personally would try to grab a 7850 if you can find one in stock