They are not enforced.
Colored coins aware clients transfer them using some colored coins rules. If the rules are violated the coins get "uncolored". But if implemented properly, your client shouldn't cause your CC to get uncolored.
The main problem with colors not being enforced by miners is not this potential uncoloring though, it's scalability.
For example, a commited utxo (http://utxo.tumblr.com/) softfork could highly reduce the trust that SPV nodes require. Without enforcing colors, this won't work for CCs.
There's other hardfork proposals for colored coins that don't have these problems. For example, Freimarkets (https://bitcointalk.org/index.php?topic=280292.0) uses tags in outputs to indicate the color and miners enforce the rules.
The main disadvantage of this approach? You need a hardfork.
But if this hardfork doesn't happen on bitcoin, it can be deployed in a merged mined chain like namecoin. The Freicoin community is willing to accept this hardfork on Freicoin and Merged Mining with Bitcoin is also planned.
But once developed, these extensions could be deployed in any bitcoin-based chain.