There are certain things you should watch out for. As people have said, NVIDIA is easier to get working than ATI.
Be careful with soundcards. Look up specific compatibility first on that.
Also, if you're getting a WiFi card, note the chip it's based on. DO NOT...I repeat...DO NOT get anything based on the TI ACX_100. It is possible to get working, but not easily, and I found it to be an unstable connection when it was. I changed that card pretty quickly. PRISM is a well supported chip. Broadcomm chips which I've found quite popular in wireless cards (many D-Links use them I believe), are doable with something called Ndiswrapper, which I've found works very well (this post will be sent through its connection momentarily

).
Other then that, hard drives, cdrom drives, CPUs, mainboards, all should work without issue.