A good place to start when looking for new hardware is the Hardware Compatibility List: http://www.linuxquestions.org/hcl
You will immediately notice that some manufacturers have lots of entries, which makes it somewhat likely that their future products will be supported one day. And, likewise, you will notice that some manufacturers are conspicuously absent.
If you’re interested in something not in the HCL, then do a google search for the name and/or part number of the item and see what people are saying about it. Also see what the manufacturer says about linux support on their support site.
Regarding LAN cards, I have been buying SysKonnet gigabit replacement cards recently, because of their linux driver support.
Modems I can’t help you with, but life is usually more pleasant if you get an external modem. Controllerless internal Win modems often don’t work in linux, or so people say.
Recommending video cards can start flame wars, so I’ll stay away from that one. Nvidia probably offers the best linux support, but you may need to install their drivers for newer cards. You will see lots of posts in this forum about installing their drivers.
One thing to keep in mind about unsupported onboard state-of-the-art hardware is that it may be supported some day in the future, depending on who the manufacturer is.