I checked coinchoose.com vs the client. They matched on all parameters except for the hashrate. In this case, the hashrate was 1/2 the client reported hashrate. They may use a difference calculation.
The hashrate is calculated by the client using the difficulty and the block solving times. The network and nodes don't actually measure the hashing power of every pool and solo miner.
The calculated hashrate for each block will differ based on how fast a block is solved even while the actual hashrate of all the computers on the network may not change. A lucky block may be solved in 10 seconds, resulting in a very high hashrate calcuation. A 5 minute block will result in a low hashrate calculation.
What the client does to calculate hashrate (with the getnetworkhashps debug command) is take the time it took to solve the last 120 blocks and the difficulty used during that time. This will give a number that smooths out all fast times of really lucky blocks and the slow times of the other blocks. Since it is a hashrate of 120 blocks, sudden changes in network hashing (such as a pool going offline suddenly, will not show up in the hash calculation right away). Goldcoin adjusts it's difficulty every 60 blocks using a similar calculation to ensure that the average block time is 2 minutes. Coinchoose may be using a different number of blocks to calculate its hashrates. It has a weekly hashrate as well, which definitely is a different calculation than what we see in our client at any one time.