The first part, seems like a classic miscommunication problem which can be solved by just talking about it after it first appearappears but before it becomes a major issue. It is all about expectationexpectations and disclosure of what the GM and player want. The first part of your question would serve superbly server as an example of what you are trying to do. Making sure that the players understood that might have averted the whole situation.
That said, your player could have mentioned her disappointment better. Being angry ofor miffed is hardly the way to go about it. Being assertive on the other hand, always is always a good thing.
To avoid most of those, I tend to use the (American) football time out sign. Once that's out, we are no longer in play and more in meta game. A quick explanation, re-wind, and play generally does wonderwonders to solve those tiny annoyances that will grow into big arguments if left unchecked.
As to your second point... I tend to know the kernel of my world, of how things work, of the NPCsNPCs' motivations and information. From there, I improvise. I may have 60 NPCs (names, a profession, an image, whatnot) and as the PCs decidesdecide to interact with them, I fill up their backgrounds up with interesting details. The world is as detailed as the PCs (and myself) need it to be and no more. The rest is cardboard cut upsouts. Generally for a game running 15 to 30 sessions, I will have about 10 to 20 pages of notes at the startsstart and about four times that by the time we are done.