Also why is the bitcoin client forcing me to pay a 0.01 transaction fee? Surely a decentralised p2p currency shouldn't need to pay transaction fees? Where do these 0.01's go?

Because of transaction spam abuse, the client was modified to force transaction fees. When making that decision was made just a few months ago, they likely couldn't fathom $30 BTC/USD, and thus the 0.01 BTC minimum fee was not expected to ever be excessive. Beginining with v0.3.23 the minimum fee will be 0.0005 BTC, ... under two cents worth, at Bitcoin's recent high trading price.

The fees go to the miner who includes the transactions in the block that was solved.

Enabling port forwarding is not an answer to the original question here, ignore the first answer in this thread. The original poster just has misconceptions about the time required for confirmations (the time required for new bitcoin blocks), which has nothing to do with your connection quality.

Many merchants just accept 0 confirmation transactions which will only take a few seconds to show up. It is still somewhat difficult to double spend these and generally not worth the trouble for small amounts. This is especially true if it is a service that can just be withdrawn later.