Here's what I usually do -- it seems to work well enough:
- Give the players different short writeups.
- Model the cultural behavior with NPCs.
- Tell the players outright when their characters would know something the players don't.
I like to give each player a short writeup about their hometown culture/environment at the start of the game. To do this well, however, seems to require that it be tailored to the particular character, different for each player, and brief.
So if someone's playing a nobleman's son who's joined the musketeers, give that player a writeup about the feuding noble families and the allure of the musketeers.
If someone's playing a horse nomad, give them a writeup about life on the open plains, raising (and possibly stealing) cattle, and the names of a few of the tribes of that region.
If someone's playing a thief from the big city, give them a writeup about places where you can usually find an easy pocket to pick, what sorts of things the guards actually crack down on, and how one usually fences goods in that sort of town.
Even if two people are playing similar characters, give them different writeups. Two horse nomads? For one, write about the time the Scythians came through on a raid. For the other, write about the natural seasons of the horse-raising year.
When the game starts, each player has something to contribute. That little writeup becomes theirs, something special that no one else has. They get to be a contributing member of the team right from the start.
In my experience, players are eager to feel useful, and this lets them be useful in a way that does your job for you.
Most people don't want to read a book before playing the game. The ideal handout is a half page of solid text -- long enough to have some meat, short enough to leave them wanting to know more.
Also feel free to throw in a picture or two. One painting of a sailing ship in a storm might get across the idea far better than your paragraph about life at sea.
Model with NPCs
Use NPCs to show cultural behavior that the players wouldn't know (or wouldn't expect). Show those NPCs using the culture to their advantage, and the players will have a model to follow.
The last game I ran used a gift economy, where no one bought or sold anything, but instead people gave gifts to cement relationships and gain status. To players used to coins and stores, this was a very foreign concept. So I let them see NPCs giving away valuable items, then later they saw those NPCs command great loyalty from people. I had NPCs give the party valuable things when they asked, then had those NPCs turn around and expect the relationship to continue later on. After about two or three sessions, the players understood the concept quite well. (I was so proud of them the time they gave someone a priceless gold artifact as an insult.)
Modeling the behavior you'd like to see is a powerful thing.
Don't be afraid to tell players things that their characters would know. Susie might not know that this is a day of silence in the church, but her character would. So when the party comes to town and the players are about to make an announcement in the local cathedral, let them know what their characters already know.
But -- and this is important -- don't tell them what they're allowed to do. Just tell them what they know and let them make the decision.
For example, if this happens:
Party: We walk into the cathedral and call out, "Hey, does anyone know where Mr. Jacobs lives?".
Try saying this instead of having the world around them respond:
DM: Just a heads-up, today is a solemn event where they keep silent vigil in the church all day.
Don't tell them they can't call out, but leave it to them to decide if they really want to or not.