Bullet,
(1) when snapping verts to grid (x), curve (c), or vert (v) make sure "keep relative spacing" is set to what you are going for, most of the time you will probably want it unchecked.
(2) also make sure your axis is in "world" mode. any other mode and snapping behaves oddly.
"If I have seen further it is by standing on the shoulders of giants." Sir Isaac Newton, 1675