How to make free transactions? I have to send a small amount 0.00001 btc to someone. The client requires a fee of 0.0005 btc (much more than the amount). This seems absurd. There should be a way to send coins for free, as mentioned in several articles ("no transaction fee"). 
Please let me know if it is possible to send BTC for free and which client to use.
Those types of transactions are not desirable on the bitcoin network.   Each transaction takes up bandwidth and storage on each of the tens of thousands of nodes that exist.

If there were no fee, people that would like to harm Bitcoin would send those "spammy" types of transactions nonstop and the system would not be sustainable.  

So the Bitcoin.org client takes a look at the transaction and if it is "spammy", it requires a minimum fee of 0.0005 BTC.

You can take the Bitcoin.org source and modify it so that no fee is ever required (or build from the branch that does this already), however your transaction will be rejected by most nodes and mining pools, and thus will likely not ever make it into a block.

You can, however, include many payment addresses in a single transaction. That way one small-ish fee will cover lost of small transactions, though as the amount of data the transaction consumes increases the fee may need to increase proportionally (0.0005 BTC per KB of data).

Be realistic though ... 0.0010 BTC is worth about a U.S. penny.  You are asking to send 0.00001 BTC -- an amount worth 1/100th of a penny.   There are very few reasons to ever need to send a payment to someone for a fraction of a penny.

In instances where earnings occur a fraction of a penny at a time (e.g., for each ad impression, or for each mining share earned), an EWallet account with that service where they are earned (e.g., mining pool) can be used to accumulate those earnings until a payout threshold (e.g., 0.1 BTC) is reached.  Then the payout can be sent without paying any fee.