5 ways. Perpetual check is really just a draw by three fold repetition.
I'm trying to list all the ways to draw a game of chess...

If both flags are down.
"A bye us normally scored as a win, although in some tournaments a player is permitted to choose to take a bye (usually in the first or last round) and score it as a draw (1/2 point)." - Wikipedia (World's leading authority on everything)
http://en.wikipedia.org/wiki/Glossary_of_chess#D
If both players run out of time, the game is also declared drawn. This should only happen in USCF tournaments (where the tournament director is not allowed to call a player's flag), because in FIDE events the arbiter is required to call a player's flag.
If both players do not show up for a game, that is a double forfeit (scored 0F-0F).
For triple occurrence of position, the three occurrences of the same position need not be consecutive. However, all possible moves in one position must also be possible in the other occurrences (this includes, for example, castling or pawn promotion...but if a particular en passant capture is possible in one of the positions then, by the definition of en passant, there cannot be a triple occurrence of position).
Also, the 50-move rule is: 50 consecutive moves without a pawn move or a capture.
I think there are only 6:
1 Three-fold repeatition
2 Insufficient Material
3 Agreement
4 Fifty moves without a capture
5 Stalemate
6 Perpetual Check
Any others I am missing? I think that's exhaustive right there, but I could be wrong.