moving money without fees
You are asking two questions which might seem to be related but are actually very different.

To move coins between addresses, you have to create a transaction and get it included in the blockchain.  Just like any other transaction, this might require you to pay a fee.  (You might be able to send the transaction without a fee, depending on the priority and/or whether your transaction finds its way to a generous miner.)

Accounts, however, exist only within the Bitcoin Core client.  They are just a bookkeeping device to group your funds.  You can move coins between accounts with the move command in the Bitcoin Core console.  This updates the client's internal records to adjust the balances of those accounts, but doesn't actually cause any coins to move between addresses, so it has no fee.