Here's what I use:
(defun my-isearch-word ()
"Surround current input with word/symbol delimiters and turn on regexp matching if necessary."
(interactive)
(unless isearch-regexp
(isearch-toggle-regexp))
(setq isearch-string (concat "\\_<" isearch-string "\\_>")
isearch-message (mapconcat 'isearch-text-char-description isearch-string ""))
(isearch-search-and-update))
(define-key isearch-mode-map (kbd "M-w") 'my-isearch-word)