QUOTE(QQuix @ Aug 18 2008, 06:26 PM)

As far as I know, AI packages and scripts only run on loaded cells (the interior cell the player is in or a 5x5 cells around the player in exterior).
I suppose this is what makes the game feasible at all. I guess even a top PC might not handle the game if the thousands (?) of AI packages and scripts ran every single frame.
I am not really sure of how it works, but I guess the game engine simulates, during the load screen, what should have happened since the last time the cell was loaded.
I had serious problems with this and had to do some heavy scripting to detect these ‘anomalies’ and fix them as the player enters the room.
I found that, sometimes, even waiting for a couple of hours in a room also cause some weird AI behavior.
But I never had the time to try to understand this better and I may be wrong.
Generally, yes, this is correct, NPCs will only perform packages when they are in the loaded cell. Waiting periods of time can, on occasion cause can cause all NPCs to be moved to the locations they should be at, so can staying out of that cell for a few hours. As you mentioned, this is done to lower the resource drain that would be caused by hundreds of NPCs moving around constantly.
However, this doesn't mean NPCs can't choose packages and do them without you around, it just means that most of them don't have that ability enabled. For NPCs which must travel between areas as part of a quest or something, you can enable this ability so that they will move and do things without you watching them. Simply uncheck "no low level processing" and make the placed NPC a persistant reference. This won't work for anything created from a leveled list, and probably shouldn't be used on anything which will be getting killed. Enabling this for NPCs can increase the processor requirements for your mod slightly, so is best kept to a minimum.
As for working around it, you're best bet is keeping other NPC's packages as basic as possible, 22-6 sleep, 6-9 eat, 9-17 work, 17-22 eat/wander.