Short answer: You can't. Long answer: You can, but it would be astonishingly stupid to do so. Sending to a million different outputs would require 34 metric megabytes of data, which currently requires a transaction fee of BTC3.4. It is unclear what you hope to accomplish by this in any case, as one millionth of a bitcoin is currently worth less than one twentieth of a cent, and would cost a hundred times more in transaction fees to send than it is worth.
Bitcoin is neither designed nor suitable for microtransactions. If your application requires microtransactions, it requires something other than Bitcoin.
It's basically this. I didn't run the numbers myself, but it sounds reasonable. Miner may, at times, include dust transactions, but by including an unreasonably high amount of them, they increase the chances of their block being orphaned, and thus risk their block reward. And a million pieces seems a bit much, doesn't it?
Basically these guys are talking about the fact that the bitcoin network doesn't keep track of how much btc is in an address, it deals with inputs and outputs. If you have an input of 1btc and you split it up into 1million outputs of 10 satoshis each, as everyone is pointing out:
1) the transaction fee would be huge to try to get such a transaction included in a block
2) your "friends" won't really be able to spend 10 satoshis (it's just too small to be worth anything at the present prices)
Checkout the bitcoin wiki on transactions and transaction fees.