I was looking for a solution for doing this automatically on every BufEnter. The naive approach didn't work as I couldn't leave my NERDTree anymore :-) - NERDTreeFind changes the window to the NERDTree and when you go back to the window with the file, it triggers again.
I found my solution in: https://superuser.com/a/474298/175466, but I had a slight problem with it: I normally set my cwd to the project root and then NERDTree and CtrlP around. Occasionally I want to edit a file outside the cwd, like my ~/.vimrc, and NERDTreeFind would change my cwd to my home folder. This also changes the tree root and when I switch back, NERDTreeFind would search the file from my home directory downwards (It's huge).
So I extended @Lambart's solution with a function that checks if the current file is inside the cwd and only NERDTreeFinds if it is.
You can find it in this gist