In terms of music, you can take either a push or pull approach. You can push the music out from a centralized location, which means you need analog audio lines to wherever you want the music to go. Or you can pull it from the server to players in the room, which means it can use the same ethernet as anything else in the room. They both have their plusses and minuses I guess.
In the push scenario you can put a multi-output audio card into the server, such as the M-Audio 1010, and load multiple instances of our headless audio player, each one of them pointed at a separate output. One 1010 will let you do 5 stereo outputs, so you can do 5 zones of output for the (backend) cost of just a single audio card which isn't much. Those outputs can be sent into a multi-zone audio amp/switcher, or just to powered speakers in each room if you are OK with dedicated zones per room.
If you go with the pull method, you need some sort of controllable player in the rooms, or some sort of touch screen client in the room which has an audio card. If you are already going to have a hard wired client in the room, it can provide the local playback by pulling from the server.