Linearity is a good thing. You mention the problem of having characters standing around and repeating a handful of generic responses, and I agree that this is a problem. The difference between us is that whilst you would try to make these characters more interactive via various AI tricks, I would either cut superfluous NPCs out of the game entirely or carefully script each "scene" to prevent the player from interacting with them in ways that revealed their "hollowness". By the way, the reason I mentioned dialogue is because characters - dialogue = furniture.