You can send
0.01 or more without a fee, however the
priority has to be quite big. As an example, if the input of the 0.01 BTC transaction has 10 BTC and 9.99 BTC of it will be change back to the wallet, it won't require a fee after only 15 blocks of age. However, Bitcoin doesn't pick the oldest coins or the coins that make a free transaction out of your wallet, it chooses coins that create the minimum change, so expect sending 0.01 BTC fee-free only to become likely if you haven't used your wallet for 100+ days.
The code that mandates a fee for transactions below 0.01 (a CENT is a constant for 0.01 BTC):
main.cpp
612 // To limit dust spam, require base fee if any output is less than 0.01
613 if (nMinFee < nBaseFee)
614 {
615 BOOST_FOREACH(const CTxOut& txout, vout)
616 if (txout.nValue < CENT)
617 nMinFee = nBaseFee;
618 }