The first answer would be the best by my reason. 3 years is a long time to hold on to a video card.
2500k, p67 motherboard and gtx460 or above. You want to know my opinion? I would try to buy a 6950 or gtx570 for longer lasting. You will want to buy a monitor that has higher resolution in the near future. Especially since now a 1080p monitor is so cheap.
For CPU and motherboard i would not change anything regardless of the video card you will chose. Let's say you buy the gtx460 witch is a great card. At that resolution will probably last you 2 years if you overclock it. After that i would buy a
"big fat card" to go with the CPU and a nice CPU cooler and keep the CPU at 4Ghz.
Also on H67 motherboards you can not overclock your CPU so that should be out of the question.
If you can make an effort to buy the 560ti as mdd1963 recommended it will last you 2 years with higher settings
![:) :)]()
. Also you can buy the 6950 1Gb model witch is about the same price and you can unlock the shaders to the extent of a 6970. That will give you some boost.
As a rival for the gtx460 is the 6850. Also you should be able to find 5850 cards at really low prices now. The 5850 is faster at stock speeds than the gtx460.
Also remember that the games you mentioned run better on Nvidia cards.
I think i messed up your mind even more.