It is possible to do a Bitcoin transaction without a fee, but a fee-free transaction may take days or even weeks to complete. Although transaction fees can increase over time, they are usually very small. By default, the Bitcoin wallets listed on Bitcoin.org will use a fee they deem appropriate; most wallets will also give you the opportunity to check the fee before sending a transaction.
Transaction fees protect the network from being overloaded by too many transactions. The exact fee scheme is still under development and will change over time. Because the fee is independent of the transaction amount, it can sometimes seem very low (0.0005 BTC for a 1,000 BTC transfer) or ridiculously high (0.004 BTC for a 0.02 BTC payment). The fee is determined by factors such as the size of the transaction data and the number of transactions. For example, if you receive a large number of small payments, the fee will be higher for each payment. This payment is like using a penny to pay a restaurant bill. Quick spending of small amounts of Bitcoin may also incur a fee. If your activity meets the characteristics of regular transactions, the fees should be low.