In Emacs 23, your code is correct. But Emacs 24 changed the rules for turning on minor modes. The argument to mode functions doesn't turn the mode on anymore, it toggles it:
Toggle display of line numbers in the left margin (Linum mode). With a prefix argument ARG, enable Linum mode if ARG is positive, and disable it otherwise. If called from Lisp, enable the mode if ARG is omitted or nil.
So what you want is just 'linum-mode
in your hooks.