is there any way to make annotations snap to a mesh?
Open the Tool Shelf in the 3D View.

Go to the Grease Pencil rider and under Stroke Placement select Surface.



Edit : For blender 2.8 it is in the popover menu.