WARNING: I am probably wrong in whole or in part. (Translation: I might be full of poo. You are warned.)This is how I understand it to be:
If you are sending a non-trivial amount of Bitcoins (something greater than 1.00 BTC)
AND the Bitcoins that you are sending have enough confirmations (never nailed down a specific number for this, but probably 25 confirmations or more, maybe)
THEN you can send your transaction without a fee (although, if you do include one, your transaction has a greater chance of being sent quicker).
NOW,
IF you send a small amount of Bitcoins (for example 0.06) AND/OR your Bitcoins have few confirmations (for example they only have 3 confirmations)
THEN the system will automatically add a fee to your transaction
EVEN IF YOU HAVE THE FEE IN YOUR CLIENT SET TO 0.00 BTC.The real simple version: Send large amounts of old Bitcoins and and it will be free.
At least that's how I understand it to be