I found this quote from one of the City of Heroes devs to be very interesting:
GG: What have you done to prevent cheating online?
CoH: I’m not really sure what “cheating” means, to be honest. I’ll assume the question refers to “exploiting” — which means that a player is obtaining experience points or other rewards in a manner that the designer did not foresee and doesn’t want. I actually don’t mind that at all. If a player can “trick” our game, more power to him. What I focus on, however, is those tricks that incentivize “unfun” behavior. If doing something incredibly monotonous and boring nets more reward than doing something fun and risky, then I’ve done something wrong as a designer. So I need to dis-incentivize the boring activity to steer the player back towards the fun stuff.