One of things making my current Call of Cthulhu campaign epic is the NPC game I am bringing to it. I thought I'd share some of the best practices of running NPCs that I've picked up over the years. First, I'll introduce tips for running the important or named NPCS, the friends and foes of the PCs, before moving onto the unnamed little people of the gameworld.
THE FRIEND
1) PCs are heroes, NPCs are victims or villains.
We all know of The Mary Sue (or Larry Lou), the GM run NPC who outshines the protagonists. Players rightly hate this kind of NPC because they rob them of heroism. I think GMs sometimes fall into the trap of using a heroic NPC because they want to play too. But GM play is a different thing, and running NPCs well should be its own reward.
One way to achieve this is to remember that NPCs should never out-hero the heroes, they are best as victims or villains.
In my CoC game, the PCs came together to meet an old archaeologist, Dr Stanley, who had sent them a telegram about a miraculous find he had made. Dr Stanley didn't show up at the appointed time, so the PCs went to his hotel only to find his room guarded by some local toughs. A gunfight ensued, 4 gang members were shot, and one PC was sent to hospital, along with 1 policeman who showed up to the gunshots. In other words, the players were invested enough in saving this NPC to put their PCs' lives on the line because his weakness made them step up to the plate.
2) Friends have their own motivations & life experiences
Just because an NPC ally can be a victim who the PCs save, this does not mean they exist at the PC's convenience. They should work to achieve their own motivations, and be shaped by their own life experiences.
In our game, after rescuing the professor, the party left El Paso for Arkham to recuperate. At this time they became embroiled in reading the ancient tome the professor had found, or doing other 'in town' projects. Ultimately, the PCs abandoned the poor professor, who had been traumatized by his kidnapping and torture.
I ruled that professor Stanley had become an alcoholic in the weeks alone, and they found him dirty and disheveled in his house after the police were called by complaining neighbors. The players chose who would go get the prof from the drunktank, what kind of treatment they would provide him, and vowed to keep an eye on him. Put another way, they have become engaged with this fictional character, and recognize the truth of his life experience.
3) Friends are unreliable
Finally, good NPCs are not always reliable. In addition to becoming alcoholic as mentioned, after his weeks alone, professor Stanley became adamant that the mythos tome he had found should be destroyed. This split the party between those reading it for power and those wary of where its knowledge would lead them. PvP ensued, the book was burned, and one PC died. Although the death was lamentable, all too often NPCs drop info or arcane knowledge and become reliable (and boring) sources of further information. In this case, Dr Stanley's objection to using the tome became a very genre-appropriate response to finding such a source of arcane knowledge, and the destruction of the book and consequent loss of life brought the Call of Cthulhu session closer to its literary inspirations than I have ever seen.
THE FOE
1) Villains don't always fight
2) Villains don't think they are the baddie
3) A good foe is compelling
The biggest result of making villains that don't blindly fight but who try to convince players of the righteousness of their actions and worldview is that they become compelling characters in the shared narrative of the game. My players sometime wonder aloud where Mueller is, and his presence and supposed furthering of the plan to gather more artefacts weighs on their minds. Mueller is thus a compelling villain, and (or precisely because) he hasn't fired a single shot at the PCs, and stopping hm has become a de facto engine driving the narrative.
THE LITTLE PEOPLE
Even the background NPCs can bring a lot to the game and the engagement with its world. My main rule is thus:
Reactions should be natural
For instance, when one player had his character run into a hospital brandishing a shotgun, all the nurses on duty rightly screamed, cowered in fear, or called the hospital guard. The player ultimately decided to suicide their PC because NPCs acting naturally was a shock to him. Yet the NPC reactions were entirely realistic, and so players should be reminded that NPCs are not schlubs to be manipulated or tossed aside without consequences. We spend everyday avoiding conflict and dealing with stubborn people in reallife, and the gameworld becomes all the more real if PCs have to do the same.
SUMMARY
So make your allies imperfect and unreliable supporting characters for the PCs to save, and have them interact with some compelling bad guys who think they are the hero. Do this, and not only will you find the villains more enjoyable to run, the players will also feel compelled to find and stop them.