The fee depends on the tx size in KB, and you can estimate the tx size using the following formula.
http://bitcoin.stackexchange.com/questions/1195/how-to-calculate-transaction-size-before-sendingSo if your transaction has 'in' inputs and 'out' outputs, the transaction size, in bytes will be:
in*180 + out*34 + 10 plus or minus 'in'
To send your tx without fee, your tx need to satisfy a few conditions.
https://en.bitcoin.it/wiki/Transaction_feesA transaction may be safely sent without fees if these conditions are met:
It is smaller than 1,000 bytes.
All outputs are 0.01 BTC or larger.
Its priority is large enough