I recently re-watched (parts of) the animated film Kung Fu Panda . To be honest, it doesn't really appeal to my sense of humour, although my brothers found it hilarious. What I did appreciate was the characterisation, especially of the villain, Tai Lung. (As well as stuff like the animation, which is really cool, but not what I want to talk about.) There are mild spoilers ahead, so if you haven't watched the film, but are planning to, maybe don't read on.
Creating a working villain is, in my experience, quite difficult. On the one side is the camp that says villains should be believable. If you're writing for an intelligent audience "he's evil" is simply not good enough. I buy this. Exploring characters is fun, even if it's not done explicitly.
The other camp is telling me that I need to make sure that my readers hate my villain. If the villain is soft and cuddly, she doesn't pose a realistic threat to the protagonist. Even worse, my readers may end up siding with the villain instead of the hero!
In his book How to Write Science Fiction and Fantasy, Orson Scott Card sides very firmly with the former camp. It would be hard to pinpoint a real villain in the Ender Saga, but that certainly doesn't stop him from building up fantastic set of novels. Isaac Asimov similarly said that he wanted people to question who was really on the right side in many of his stories. I'm sure there are examples outside the SF genre; that's just what I know best. However, while I very much admire what can be done, I don't think I'm ready to go there just yet. I struggle with much more fundamental things!
Kung Fu Panda, on the other hand, ha almost textbook characterisation. In fact, the explicit characterisation is part of what I enjoyed about it. In a flashback we see Tai Lung as an abandoned baby. He's cute and adorable, and is brought up and pampered by Kung Fu Master Shifu. Shifu doesn't see what a spoiled brat Tai Lung is becoming until Master Oogway refuses to let Tai Lung become the legendary Dragon Warrior.
At that point, Tai Lung cracks. In his mind, he is the dragon warrior He will do whatever it takes to get what he deserves. That lands him heavily sedated in a deep dark prison at the beginning of the film. Soon after the film begins, he escapes. He is completely ruthless, but there is a small sense of sympathy. Maybe he just feels betrayed. Poor guy--but he's still horrible.
Later, Shifu apologises to Tai Lung and gives him a chance to turn back. By now, we know Shifu well enough to see that he's far from perfect, but still very wise. Tai Lung rejects the apology and threatens to kill Shifu. That's where, in my book, he becomes a really well-crafted villain. He's not just innately evil, but he is, fundamentally, evil. We can see how he got there, but also that he chose to stay there. He's not misunderstood: he's evil.
Until (hah!) I reach an Asimv-esque fluidity of hero and villain, I'll be very satisfied if I can create villains like Tai Lung. He hits a very sweet point on the balance of a traditional villain.
Addendum: I would feel that I'd left something out if I didn't mention that Shakespeare has written villains that seem to fall a long way into the second camp. Iago of Othello is a good example. Clearly it can be made to work.