I guess the coins are "new" <--- nice arbitrary rule?
It isn't arbitrary, it's designed to prevent tiny spam transactions that would fill up blocks and prevent any other transactions from being included.
If you know of better ways to prevent malicious spam transactions while keeping the fees very low for everyone else, please contact the devs.
Depending on your use case, perhaps you could have swept the private key into the new wallet instead of broadcasting a transaction on the block chain.
Also,
if the "online wallet" you've sent your coins to is a service which holds the private keys for you, you haven't made a transfer from "your account" to "your account". This transaction would be more like transferring money from bank A to bank B, which would typically involve fees.
Edit: I've been using Bitcoin for three years and have
never needed to include a fee for a transaction, but I have anyway in order to support the network.