Is there a minimum transaction fee for every transaction? When do I pay a fee over the minimal fee?
The minimum transaction fee is zero.
Transaction fees are enforced in two places. First, a client can be configured not to accept or relay a transaction that doesn’t include a sufficient fee. Second, a miner can choose which transactions to include in any blocks they mine and will typically try to include transactions with the highest fees.
Most normal transactions will have a required fee of zero. The three most common exceptions are:
If a transaction uses coins that were very recently received, a fee of .005 bitcoins may be imposed.
If a transaction “gathers” bitcoins from a large number of other transactions, a fee of about .0002 bitcoins per input source may be imposed.
If a transaction “spreads” bitcoins to a large number of destinations, a fee of about .0002 bitcoins per output may be imposed.
This is because these types of transactions tend to look a lot like spam transactions used to maliciously load the network. Currently, there are still clients and miners that will accept any valid transaction regardless of the transaction fee. So if you’re willing to go to the trouble, you can get any transaction into the public chain eventually with no fee. (Just manually configure your client to connect to them and be patient.)