I tried sending one satoshi (0.00000001 BTC) to one of my friend and the client always showed a dialog prompting me to pay 0.0005 BTC in fee, with the only options being OK (pay the fee) or cancel (cancel the transaction). The transaction was using one input and possiby two output (with how the clients jungle with the addresses).
I checked the option and the fee was at 0.00000000 BTC, but the client would not let me placed the transaction.
The standard client, as distributed by the Bitcoin developer team, does not permit transactions without a fee for amounts less than 0.01BTC. It adheres to the fee calculation suggestion in the transaction.
That said, not all clients enforce this rule. See Can different clients have different transaction fees?