I think I have found out why my system was over heating. I removed the heatsink from the CPU and found that it was clogged with dust! As my house mate pointed out, that meant that there was a restricted air flow (doh!).
Second, the thermal compound that was on the bottom of the heatsink had been placed on wrong, so that meant that it was only covering half of the contact part of the CPU.
So after hoovering out the dust from the heatsink (and the case while I was there) and re applying the heat transfer compound, I have got my system from 55°c @ idle to 40°c @ idle. Even at 100% CPU load I only get to 48°c!
So basically check your heat sink is clear and make sure you have got good connection with the heat transfer compound.
You might also want to goto this website:
http://www.hmonitor.com/. It will monitor your heat sensors and fan speeds (as well as so a few other things) and also does a log file so you can put that into a spreadsheet and check how you are doing.