Time Out says
Who really wants to watch Cameron Diaz be bad? Observe her gentle frump in Being John Malkovich or the manically upbeat danceaholic she played in Charlie's Angels, and you'll realize that Diaz is an actor who gets the most laughs from being good. You'd never call her characters ditzy, but even when she's not in on the joke---hairtenna extending upward with "gel" in There's Something About Mary---hers is a persona that requires sweet innocence to work.
Bad Teacher goes the other way, turning Diaz into a cartoon siren with a potty mouth tearing into her junior-high-schoolers for either being too sensitive or interrupting her private bong hits. The movie works---to the extent that it does---because of its sharply un-PC script (credited to Lee Eisenberg and Gene Stupnitsky) that sometimes feels like a Hollywood rewrite of Election. After being dumped by her opera-loving sugar daddy, Elizabeth (Diaz) pursues a set of breast implants with a single-minded passion, hijacking carwashes and a state-issued scholastic bonus with amoral glee. (The movie's nods to the bare-bones economics of educators' lives are subversive and admirable.)
But unlike that other, superior "bad" movie, Bad Santa, you know exactly where this one is headed, with Jason Segel's chunky gym teacher waiting patiently for the inevitable change of heart. Still, for top grades, look no further than the sidelines: British-born Lucy Punch, as Diaz's chirpy antagonist (an uptight across-the-hall schemer named Amy Squirrel), shifts the movie into a Kristen Wiig--like realm of squirmy passive aggression. Whenever Punch elbows her way onscreen, you sit at attention, waiting for the cringe; she's got badness to spare.
Watch the trailer