Bitcoin Fog acts as a mixing service or an online wallet. Funds transferred to the Fog get mixed with other users' funds. When requested, funds are paid out in multiple randomized transactions to further anonymize the source of money. Comission as of August 4th 2012 is chosen randomly between 1-3% on all deposits. 
The bitcoin network might be anonymous in terms of single-handedly revealing your ip address, but the transaction history is recorded in the block chain and is publically available, which makes your anonymity very vulnerable. Once the interested parties, be it authorities or just interested researchers have acquired any one of your addresses or transactions, they could easily track your money around the network.
And knowing your transaction history, connecting your bitcoin addresses to real you is possible, because you will at some point need to exchange your bitcoins to or from a fiat currency using a bank account number, a credit card, LR account or similar service which is much less anonymous than the bitcoin network.
We are providing a solution for this: using our service you mix up your bitcoins in our own pool with other users' bitcoins, and get paid back to other addresses from our mixed pool, which, if properly done by you can eliminate any chance of finding your payments and making it impossible to prove any connection between a deposit and a withdraw inside our service.
In December 2013 the site was used to launder a part of the 96,000 BTC from the robbery of Sheep Marketplace.
How it works
Standard procedure to anonymize bitcoins is to recharge your account on the payment page (Deposit) and their subsequent withdrawal after a while on the page of Withdrawal (Withdrawal). Bitcoins will be mixed in our internal pool with other users bitcoins and then paid to your address (or multiple addresses), in multiple transactions for a random amount.
You register an account on website and deposit bitcoins to the designated address. After a couple of network confirmations, money is registered on Fog account, and you can schedule withdrawals. Each withdrawal will be split in a random number of payouts, depending on the amount, and the relative size of each payout will be randomized as well. Even the timing of those payouts will be randomly spread out over a period of time user will specify.
Ideally user should deposit an amount of bitcoins to the Fog, wait some time (for amounts above 100BTC we recommend a day, above 300 BTC a couple of days, about a week for 1000BTC, etc.) and request a withdrawal, which will not have the same amount as the original deposit, leaving some funds in the Fog.
Then customer should deposit another batch of bitcoins and withdraw yet another amount, again different from the amount you have deposited. This time it can be lower than deposited, or higher, adding the funds you have left from the previous deposit. This way there is no practically reliable way to do statistical analysis on the block chain and link your deposits to your withdrawals.
The service is paid by charging a Commission of 1% to 3%, randomly charged for each payment. All coins collected go into a common pool to ensure the continued operation of the service.