The system relies on being able to trace the history of a coin to make sure it's not bifurcating in it's history. The anonymity comes in the fact that there's no identity attached to your purchases, not in the fact that you can't correlate purchases together. Theoretically, there's systems in place to help obfuscate such connections between income and purchases, but I believe it'd still be possible to trace the history of coins through "some entity". Likewise, there'd be no way for him to transfer said coins into another wallet without a transaction, which is, effectively, public record.
Think of it as people know that a transaction happened between two addresses, but they don't know who those people are or what the purchase was for. At least, this is my understanding of the system.
While this is true, the fact remains that the coins cannot be made "dirty money" without ripping someone off. Take the following chain of events:
Scammed Person ----->Scammer ----->New Account
Now, it could be that the scammer made a new bitcoin address and moved the "dirty" coins there. Or, it could be that he paid someone for a service using the "dirty" cash. If we take the cash from "New Account," we risk ripping off an honest businessman and damaging the reputation of the bitcoin system.
Thus, unless the money is sitting in the account paid by "Scammed," (which makes the scammer an idiot), there's nothing we can do without undermining Bitcoin.