Why is Bitcoin-qt using my CPU at 100%?
When Bitcoin-qt synchronizes with the network, it is not only downloading blocks (lists of transactions) but also verifying them: checking cryptographic signatures, etc.  This gives you independent verification that the blocks you've received are true and correct, and that you're not being sent fake data by some malicious peer on the network.  However, it is computationally intensive, especially given the large volume of Bitcoin transactions, and I am not sure that Bitcoin-qt has highly optimized code.  Other clients may do a reduced amount of verification, saving time and CPU, but at the expense of some security.