Excellent thread!
Another option a different company uses is to self limit (out of the client) the amount of money that can be spent in a time period.
$0 dollars every year (no purchases available)
$20 dollars every 6 months
$10 dollars every month
etc
This would also seem handy for people who have kids that play the game (and we know kids play the game!) they could set up an allowance.