Zotac GTS 450 will outperform an HD 6670 if it is the GDDR5 version, and Nvidia cards have better support for games in drivers.
GTX 550 Ti is also a good card, but remain on mid-end cards, because your processor is not so strong and it may bottleneck all.
My Core 2 Duo E6300 was bottlenecking a PNY GTS 450... Now I have a Radeon HD 4870 X2 and the CPU is slowing all down.
In my opinion, a GTS 450 will be a good choice for you. It is a very good card. If you want a little more CUDA cores and performance, go for a GTX 550 Ti.
If you want ATI cards, search for an HD 6770-6850, or HD 7770.
But be careful with PCI Express version: if you have a PCI-E 1.0 or 1.1 slot, then PCI Express 1.0, 1.1 and 2.0 cards will work. PCI Express 2.1 and 3.0 cards could have issues with old PCI Express 1.0-1.1 slots. I tried to install a Radeon HD 5670 (which is PCI Express 2.1) on my pc (which is PCI Express 1.1) and the card didn't show signal on screen.
Then I read that PCI Express 2.1 and 3.0 cards are not full compatible with older PCI Express slots.
So, if you don't have at least a PCI Express 2.0 slot, don't go over Radeon HD 4000 series or Nvidia 400 series. So, in my opinion, a GTS 450 will work very well. For a bit more money you can buy a GTX 460 SE, which is faster than a GTS 450.