Another common thing in IF that doesn’t work is when NPCs repeat random actions to simulate involvement with the world around them. This just creates a threadbare impression of artificiality, much like an android moving around to its own silent song, locked in its own world; if such is meant to impress upon us a sense of interactivity, a shared world between the other being and ourselves, it fails miserably.
To make NPCs lifelike, first give them goals and schedules. A second way of making them lifelike is to give them manners. Whenever the NPC comes into the room, have him acknowledge the player in some way, and when the NPC leaves or the player leaves, have the NPC react (even if his reaction is a non-reaction like studiously continuing his work, or something). Simulation of the salient characteristics of life create the impression of life. If someone behaved like most NPCs in IF games — not responding to our greetings, doing random things for extended periods of time, and rarely conversing — we would surely think them insane! At the best, we would think of them as commonly deranged, like the winos or the homeless.