Because to check whether some transaction is valid the nodes need to look at the blocks with the transactions whose outputs are inputs of the new transaction.
Every unspent output needs to be visible. IIUC, it would be theoretically possible to "prune" the blockchain and remove all transactions whose outputs have been spent.
However, to do such a thing would require messing with the blockchain a lot, including finding a way to represent the prevblock hash which forms the link between each block and the one it builds upon.
Fot BTC, just forget it. A new cryptocurrency could have a different blockchain format which would enable the network to drop old data. I think the ripple ledger format is designed to do that, however I've not looked closer to see whether that is currently possible or just a future option.
Onkel Paul
So you think its impossible for the BTC developers to upgrade their code so the ledger could be pruned?