I think it's important for the server to recognize that a draw has occurred when the same position has occurred three times, as well as when there is insufficient material to mate.
However, Russ has said that having the program constantly checking to see if these conditions were fulfilled would be rough on the server.
I would resolve this problem this way:
Have a button on the game screen, next to the offer draw button, labeled "claim draw." If a player thinks the game is a draw for either of these reasons, he can press the button, and the server will then check for threefold repetition and for insufficient material. If the either of these conditions are satisfied, the game ends immediately in a draw. If, on the other hand, neither condition applies, the claiming player receives a message saying "It's not a draw, you moron!" or something like that, and that player must then make a move.
With regard to the threefold repetition rule, this would be completely in keeping with tournament rules, where threefold repetition is not an automatic draw, but must be noticed, and claimed, by one of the players.