. . . think of it this way, you go to a sandwich shop and buy lunch - instead of handing the cashier a $10 bill to pay for your $6.54 lunch, you hand them a bag of pennies.
Better yet, think of it this way:
You start with a single transaction with a 100 BTC output to you.
You send a single transaction to Satoshi Dice (SD) for 0.01 BTC. To do this most bitcoin wallets create a transaction that has 1 input (100 BTC) and 2 new outputs (99.99 BTC back to you and 0.01 to SD).
If you lose, SD creates a transaction back to you with a 0.00000001 BTC output.
Your wallet now has 2 outputs it can spend (one for 99.99 BTC and one for 0.00000001 BTC).
If you win SD creates a transaction back to you with with your winnings (perhaps 0.02 BTC?).
Your wallet now has 2 outputs it can spend (one for 99.99 BC and one for 0.02 BTC).
The next time you play, your wallet chooses to spend the 99.99 BTC output. It creates a new 99.98 BTC output to you and a 0.01 BTC output to SD.
If you lose, SD creates a transaction back to you with a 0.00000001 BTC output.
Your wallet now has 3 outputs it can spend (one for 99.98 BTC, one for 0.00000001 BTC from this play, and one either for 0.02 or 0.00000001 BTC from previously).
If you win SD creates a transaction back to you with with your winnings (perhaps 0.02 BTC?).
Your wallet now has 3 outputs it can spend (one for 99.98 BC, one for 0.02 BTC from this play, one for either 0.02 or 0.00000001 BTC from previously).
Keep at this long enough and that 99+ BTC output will continue to dwindle, and the number of tiny outputs will continue to grow.
Eventually you won't have a single big enough output to spend for your bet. Your wallet will need to combine all those tiny outputs to create a transaction for the amount of bitcoin you want to spend. Take a look at the transaction you posted and you can see all the tiny outputs that had to be combined to create your transaction.
The Bitcoin-Qt "reference client" would have the same issue. Most wallets would.
If you receive a single large output (perhaps 50 BTC) at your wallet, you might be able to create a transaction for a bit more than 50 BTC (perhaps 50.01?, perhaps 50.001?) and send it to an address you control. Then the wallet can sweep up some of that dust along with the single 50BTC output creating a new slightly larger output (as I said, perhaps 50.01 BTC or 50.001?). After the 50BTC gets a handful of confirmations, you could send it again with a slightly larger amount sweeping up a bit more dust again. You could do this enough times sending slightly larger amounts each time until all the dust is swept up.
The other option is to wait until BTC becomes far more valuable (assuming it eventually does). When 0.00001 BTC represents a significantly larger buying power, the fees may be reduced further and quantities as small as 0.0000001 may no longer be considered spammy "dust".