Transaction fees aren't "calculated." They are determined by the sender of a payment. When you send a bitcoin (or fraction of one) you may opt to pay a transaction fee and you set the fee.
Caveats:
- Some client versions set a mandatory minimum fee per kb of the transaction size. The most recent client version sets this minimum at .0005 btc per kilobyte I believe, and most transfers are 1kb. The older client sets the minimum at .01 btc... and this obviously causes problems for people who haven't upgraded.
- If you use some online wallets (like instawallet or mybitcoin) it appears that you can send btc without any transaction fee. I have done this many times.
All you really need to understand, is that fees tend to be voluntary, but it is smart to include a fee in order to have your transaction processed in a reasonable amount of time. As the market matures, the fee required for a quick transfer will continually fall due to competition. Short term, due to some client issues, some people are paying fees higher than they need/want to.
Hope that clears it up! =)
That probably clears up some of the other questions in this thread, by not my original one. Don't we still have an issue longer-term with feasibility of micro-transactions under bitcoin due to the fact that fees will likely have to a fairly high percentage of tiny transactions in order to get them processed in a reasonable amount of time?