Generally speaking if you want to contribute you have two options:
Become a blockchain peer
The Bitcoin network requires the full chain to be available for download. If not enough peers allow the full chain to be downloaded, this is a risk to the network. This isn't CPU intensive but puts a small load on your network IO as a configurable number of peers download the data.
Namely you can run bitcoind and allow inbound access to port 8333. This will allow people to download the blockchain. If you see options to run as a "server" know this runs something different on port 8332 and is considered "sensitive" and should be secured.
I like to visually check on on the process so here is the command I run:
bitcoind -debug -logtimestamps -printtodebugger -printtoconsole
If your computer can handle it, edit the bitcoin.conf file (location is platform specific) to allow more people to simultaneously connect. Edit maxconnections= to whatever you think is best.
Mine
There isn't much use in mining unless you have a FPGA, or ASIC for Bitcoin. These rigs are more specialized and competitive. Take a look at www.butterflylabs.com for an ASIC miner that can plug into your USB port
1Other than to make an attack more difficult, does this benefit the network at all? – Stephen Gornick – 2012-12-26T05:50:49.717
I think you need to more clearly define what you mean by "contribute to the network". Do you want to 1.) mine, thereby contributing to the processing of transactions, even if you ultimately won't partake of much reward (unless your headless server has a decent Radeon graphics card), or 2.) simply act as a relay node? – Colin Dean – 2012-12-26T08:47:29.660
I updated the question. – miracle2k – 2012-12-26T10:15:09.073