If your on a tight budget, and it sounds like you are, go with a GeForce 6200 128MB Card. In most cases you'll find it cheaper and much easier than a FX5700, which is the minimum card I would recommend for playing those games. I have a younger brother who plays all the games you listed and Battlefield 2 on a 6200, and they run perfectly fine for what he needs.
And trust me I know how hard it is to find money when it isnt there. Especially when your not old enough to get your own job. I spent a summer working for my parents, and wasted a birthday and a chirstmas years ago to just to upgrade my first computer. But it was worth it, and I recommend you try to, too. Even if its only $250, you can get a lot for a little now a days.