After reading a recentish post over on Scratch Factory, a blog on which I'm a contributor (although I haven't in a really long time), I gave some thought to NPCs and how to use them.
Firstly, let me reiterate for those just tuning in. My setting, DARK•HERITAGE is a "dark fantasy" setting, best suited for some other low-fantasy system other than D&D. It's got strong elements of horror. In fact, it has three main "themes" and any given game of DARK•HERITAGE could use one or more of these themes as a skeleton on which to hang the entire tone of the game. The first of these themes is horror. Rather than a D&D-like paradigm, as the banner-logo says, this feels more like Call of Cthulhu. The second is intrigue. I also see DARK•HERITAGE as a vehicle in which to explore thriller/spy type stories in a secondary world fantasy setting. And the third is crime. I also see the setting as loosely inspired at least in part by The Godfather and as such, every single place with more than about a thousand inhabitants or so is automatically a "wretched hive of scum and villainy." You must be cautious. My players are frequently hanging around in dim taverns full of suspicious and colorful characters--any one of whom, if not most of whom, could be eyeing them as potential targets for some kind of scam or scheme.
With those three themes, it's easy to get carried away and actually do myself and my players a disservice with regards to NPCs. It's easy to make every NPC a scalawag, to make everyone out to betray the PCs, to make everyone grim, grimy and sleasy. But in this medium, that's a big mistake, I believe.
As Corey mentioned on Scratch Factory and I'm paraphrasing and expanding on, I believe many NPCs--perhaps even most--need to be pretty straightforward, and they need to be somewhat obvious. They need to wear their motivations on their sleeve, and they need to consistently display those motivations. Complex villains who have redeeming features, or complex heroes with dark secrets might make for interesting reading in certain types of books, or might be interesting to see in certain types of movies, but by and large, your villains need to be almost caricaturishly nasty, and your "good guy" supporting cast of NPCs needs to be almost caricaturishly trustworthy. Or at least predictable to the point where you can trust what they say they say that they will do, even if that doesn't necessarily mean that they're completely supportive of everything the PCs might want of them. And... most characters should be one of those two.
That doesn't mean that you can't have shades of gray NPCs, because you should. That doesn't mean that you can't do betrayal plots from time to time, because you can. But you should be pretty judicious on how you use those elements. Why? Mostly because if you're not careful, you'll engender paranoia in your players. And while a little bit of paranoia isn't necessarily a bad thing, it doesn't take too much to turn into much more than a little paranoia, which is both tedious and frustrating for you and your players, most likely.
By the same token, one of the best ways to make NPCs fall into easily recognizable buckets is to use fairly stock characters. "But wait," you may be saying, especially if you've ever looked at any advice from writers on how to write stories. "Don't you want characters to be more interesting than that?" Actually, not really. Not for most of them. Are your players really going to get to understand the complex motivations of very many of your NPCs? Not if they're anything like almost every player I've ever met. Plus, keep in mind that the player characters are the protagonists of the story. They're supposed to be the most interesting characters. Very, very few NPCs should be so interesting that they compete with the player characters. One-trick pony sidekicks who serve as comic relief, or reliable support, and interesting and despicable villains being perhaps the rare exceptions to that rule.
Most of your characters should be easily recognizable. Cardboard, even. Their motivations should be readily apparent. If they're to be villains, they should be obviously and immediately vile and unlikeable. If you're supposed to rescue them, or if they're to be your patron, they should be immediately and obviously trustworthy and straightforward. Otherwise, these NPCs aren't likely to drive adventure; they'll distract your players from adventure. They'll be excuses for your players to spend time vetting your NPCs, and doing unnecessary "background checks" of various types on them. Or they'll simply ignore the hooks for adventure that you dangle in front of them, because they'll have learned through experience that the hooks merely mean they'll be hauled out of the water, clubbed over the head, gutted and beheaded, and cooked with butter and lemon over an open fire. To use the fishing analogy for more than its worth. Who wants that?
The characters that aren't--well, because of that, they become the ones who are truly special. They become the ones who are interesting. But honestly, not every character should be interesting. Only a handful of NPCs can really be interesting at a time.
Now... to generate adventure, every character--even the boring, trustworthy ones can have a secret. It doesn't have to be a dark secret. Heck, it can even be a heroic secret. I'm thinking of the Pixar flick Cars here, where its eventually discovered the the sheriff of the tiny community of Radiator Springs was a famous former racer who becomes an important mentor figure for Lightning McQueen (the protagonist) and eventually becomes crucial to propelling him to the conclusion of the movie with the support he needs to succeed. Whoops, sorry if I spoiled that for you there. Your trustworthy NPCs might have secrets that they're unwilling to share unless convinced... but which can be important for your PCs. Information that's crucial to their success, or some piece of unique equipment that they need to use.
And, curiously--this serves to make them interesting, even if as characters they are predictable and straightforward. It also gives the PCs something to discover and uncover, if they're clever enough to interpret the clues that you've planted that there is a secret to pursue.
In summary, making NPCs interesting is much more than making them complex or conflicted. In fact, it's almost certainly detrimental to your campaign to make too many of them too much of either, even in a self-professed intrigue/horror game like mine. Most NPCs need to be straightforward and obvious. They need to be almost immediately able to be classified as "trustworthy" or "villainous"--which, in a way, makes them trustworthy. You can always trust them to act vile. But giving NPCs an interesting secret of some kind, even trustworthy ones, can not only make them interesting, but be a driver for further adventure once the PCs find clues suggesting the secret.