upgrading the memory is fairly easy...visit kingston, crucial websites and use the configurators to tell u what memory to buy (around 50-100 bucks) depending how much memory u want and if u want 512 or 256 sticks
to upgrade hard drive....i'm not sure if u want to dual boot win and linux or if u want to keep the current 40gb...if not then u can do a fresh install of win. or linux on a new hd (around 60 bucks)
for gfx card, i would recommend getting a vanilla 6800 which should cost around $200.
ever since our old computer got fried (little borther playing Warcraft 3 in a thundstorm), i've felt like i need to upgrade most of my system (old: 512 ram, 80 gb hd, decent vid. card(cant remember). new:256 ram, 40 gb hd, and integrated vid card). the hd has about 15 gb left, but im starting to discover linux, so that wont last long. i want atleast 512 mb more ram, an 80 gb hd (atleast), and a fairly good video card. price limit is $350, but a few dollars over wont hurt. Pentium 4 2.80 Ghz btw, running windows xp

Chowhound
Comic Vine
GameFAQs
GameSpot
Giant Bomb
TechRepublic