Every single time my snake poops, or every week, which ever come's first. The water is changed every 2-3 days. I use paper towel bedding so it's easy to clean up, I roll up the paper towel, dunk all the cage accessories in bleach water, scrub and rinse em a little, and return everything to their place after I spray the cage with bleach solution and rinse with garden hose. I got it down to a 15 minute job per cage, it's pretty fast once it gets routine, and it keeps all the cages squeaky clean.
Once in a while I'll let a tank sit in bleach water with all the accessories for extended periods of time (about an hour) if I suspect bateria or something (bad smells, sick snake, mites, etc).
Yes, I'm one of those clean freaks.
-13mur 6