To enable this, the blockchain uses a merkle tree to organize the transaction records in such a way that client software can locally delete portions of its own database it knows it will never need, such as earlier transaction records of Bitcoins that have changed ownership multiple times.
https://en.bitcoin.it/wiki/Bitcoin#ConfirmationsAFAIK, however, this is still unimplemented in the main Bitcoin client. But at least a solution is known.
That is reassuring...
But if every client out there deletes the same old transactions wouldn't that be a problem?
Does the client not still need to at least initially download and verify every transaction in the chain before it can start pruning?
Would that introduce reliance on central servers who store the data everyone else is deleting?