So I'm currently taking a class called Game Design Workshop. It's a fun class which has the students create board games in order to learn some fundamental elements of actually creating games. Plus it gives us something we can put into our portfolio that someone could build and play quickly. When everyone is creating their games they always lay down the basics of the game: how you win, how you lose, basic play, and what pieces you need. Naturally as you create all of these things you also need a rule set to tell the player what they can and cannot do, which more often than not is more difficult than you might thing.
The thing you always need to keep in mind is that most of the time, what you actually put into the rules is much less important than the things that you haven't put in the rules. The one mistake that people seem to make over and over again is not putting in a rule that the creator perceives as "obvious." In a board game this becomes a problem for the same reason it becomes a problem in a video game. When play testing actually occurs it usually causes the player to act in a manner the designer didn't intend. In both cases the results are often game breaking and frustrating for the designer... or at least that's how the people in my class normally act when such a thing occurs. However, I feel these events should be handled differently and what I know of game design history speaks much the same way. What I mean by that is if you just let them have fun with it then maybe you can find a way to make it not so game breaking. If we look at game history you can see a game this worked out very well for: Grand Theft Auto.
Grand Theft Auto started life as a much different game. But a bug gave birth to a gaming giant: http://www.youtube.com/watch?v=o67dj4THxcI