NPCs are essentially monsters that don't hate you =)
Create an entity for the npc, give him health, a model, define the bounding box, solid type, movetype if applicable, and then decide upon interaction (does he stand there, does he roam, does he make sounds, does he initiate conversation, can you initiate conversation with him?)
In short, QuakeC can easily make NPCs, and theoretically they could even send you on quests or such. Not 100% what more you were asking, but hey, I'm not even a coder.