Get the 9800 XT, why?
ATI has proven again and again that their R360 core cards can play DX9 with style and grace, it's taken nVidia a few months of tweaking their drivers to play at ATI's level. You know why nVidia's clock speeds are faster? because their
GPU's need to send the same data through what is essentially recoding (thats simplifying it) in order to mantain good framerates and good visual quality. Despite the fact that nVidia has seemingly fixed their problems there's the whole point that Valve (makers of HL2) chose ATI over nVidia to demo and essentially "build" HL2 around, that means something.
As Evil3lf mentioned the XT comes with HL2 (a coupon for it), also the Radeon only takes up one slot, the 5950 takes up the PCI slot next to it, yea this is retail salesman logic but considering they both perform at similar levels...
That was the long of it, the short of it is that the 5950 will perform better on DX8 and DX8.1 stuff (old stuff) and the Radeon 9800 XT will perform better on the new stuff; seeing as you want to play the new stuff I'd would
HIGHLY reccomend the Radeon 9800 XT...
note: if your looking to save a few bucks the 9800 XT is just an overclocked 9800 Pro 256mb card with overdrive capabilites (temp sensor in
GPU core, I don't know if its a number we can all see or if only the code sees it). With the 256mb 9800 Pro just get some aftermarket cooling (Zalman heatpipe or watercooling) and
OC it, hell, even the stock cooling should get it pretty far. I have the 9800np (256bit, 128mb) and its running fine at 425mhz core clock, seeing as all the 9800's have the same core and all but the XT have the same core cooling I'd think that you would get good results.