Actually, in my opinion, computers are great at simulating tactical fights, but they are not good at handling NPC interactions. Things like "NPC will join you when talked to if you have Int > 16 and Cha > 15" feel very artificial to me, players should use their own intelligence and communicative skills for that.
I think NPC interactions could be made fun.
PersonalityEach NPC would be given a random personality, which might take the form of an existing personality scale like Myers-Briggs. This random personality is not directly revealed to the player, but colors the NPCs actions and dialogue. The personality of the should have an effect subtle enough to require much dialogue to be entirely revealed, except in the more extreme cases.
OpinionsNPCs would have an opinion about everything and everyone they see, even if it's entirely neutral. Things that hurt an NPC should lessen the NPC's opinion of that thing greatly. Saying and doing the right things (the right things would depend upon the NPC's personality) would increase or decrease the NPC's opinion of you, which would make further communication with that NPC easier or harder, respectively.
MemoryA reference to anything that enters an NPC's line of sight would be stored in its memory and given a value based on how important the NPC considers that object to be, which would depend upon the NPC's personality and how strongly the NPC feels about the object. This value would decrease with time; when the value reaches zero the object is removed from memory. Trivial things might be removed after a single turn, while more treasured objects would remain in the NPCs memory for its entire "life". The player should be able to ask about things and receive a reply based on whether the mentioned object is in the NPC's memory and how the NPC feels about it. Objects would ideally be stored in the NPC's memory based on physical attributes, so the NPC won't be able to tell two identical items apart.
EmotionsPersonality, the NPC's current situation (injured, poisoned, surrounded, wealthy, etc.), status of liked/disliked objects (loss of friends, number of enemy corpses in view, etc.), player dialogue, and a bit of randomness should all play a part in determining the NPC's mood. The mood of an NPC, would, quite naturally, effect what it is likely to do and say.
It's not really much of a plan, there are likely several holes in it, and it's all well beyond my ability to program at this point, but I like to talk about it anyway. It's not like I'm promising anything.
After I'm finished with my current project, I mean to make an attempt to breathe life into....
Oh, that? I was just.... nevermind.