I'm not sure where I saw this. It may have been on reddit, or it may have been somewhere else. The point is that somewhere I was, at some point in the recent past, I overheard someone ask if the villains in their games have to be evil and what options there were for non-evil villains. Today I want to address this because, in my opinion, having a villain that isn't evil is not only an option, it is in fact one of the best choices you can make for a truly memorable foe.
Hero In Their Own Story
This is traditional advice for story tellers and writers, but it is also one of the best ways to make a believable villain. Basically, if the story was told from the villain's point of view they would be the hero. Darth Vader is trying to atone for the sins of his past and unite the galaxy in peace under the current government (bit extreme since Lucas put "good vs. evil" into star wars, but you can see it in the character) for example. For an example in the other direction, look at how Optimus Prime acts in Transformers 2 and 3 (the Michael Bay films) and be objective when analyzing what he does. Those aren't the actions of a hero, but because the story is told from his perspective we get the sense that he is that.
Either way, however misguided the character is, from their point of view they are the hero. If you keep that at the core then the villain will automatically have more depth than most of the bad guys out there, and that is pretty awesome.
Evil Is Boring
It is when you think about it. Evil for the sake of being evil is boring. Evil for Evil's sake is why you have someone with millions of dollars and untold forces trying to destroy the world (that they live on, mind you) rather than enslave it or rule it or put it to work under them. Evil as a motivator does very little for a character because it's just so...flat. Sure, it works in a pinch. Especially with gods or "forces of nature" but when you want a nuanced villain, even if the character is evil, you don't want evil to be their motivation.
Good Guys Make Great Villains
Ever use a Paladin as your villain? No? Try it some time. As a GM it is wonderful because it challenges you in so many ways. After all, your villain is Lawful Good. They have a strict code that they have to follow - and they do - and they are trying to help out the 'good' in the world. This doesn't mean they're a nice guy, but it does mean they are often not a prime suspect. A lot of horrible, evil, and despicable things can be done in the name of Order (Law) and Good. Especially if they have the right people around them and basically just deny things to keep them from knowing what is going on. Especially when the villain hates what they have to do but sees no other way around it.
Consider the Paladin that to save the world from demons must kill the princess they spent their life defending. Or the Paladin that must raise an army in rebellion to a king because the King's son is fated to be consumed by a dark god and if that son ever sits on the throne.
For more of a "right hand man" you could have the Paladin allow that same Son to take the throne, plunge the realm into darkness, and stand by and defend the evil god because that is what the Paladin has sworn to do. He can't be budged on his honor (he is lawful good) but at the same time knows what he is doing is wrong.
All of these things can make for a fun and interesting villain for the players to deal with with the best part coming from the fact that the character has motivations other than evil, and should in fact be one of the good guys.
Examples in Modern Story Telling
If you need other examples, take most modern fairy tales we have and change the perspective. Star Wars from the perspective of a party of Imperials is about putting down a violent rebellion that is, among other things, claiming that your leadership - who put down a cult of 'wizards' trying to control society with illusions - a dark wizard capable of doing horrible and despicable things. Rebels that are so hell bent on getting their way that they turned a mining installation on the peaceful planet of Alderaan and then blew up the station and killed all the people on board. (may take a bit of re-rigging to make that true, or not, but you still get the idea.)
Alternatively, Robin Hood is about a bandit in the woods that robs people becuase he doesn't like who is in charge. Think of all the suffering caused by those thefts and what would happen if a band of magistrate/law bringer PCs had to deal with him?
Yes, in both cases there is the chance your party changes sides and joins the villain. You know what that is though? That's freaking awesome. If your villain is sympathetic enough the players choose to swap sides you've done an amazing thing. Just don't forget to humanize both sides so that the choice can be tough.