Is there a way to snap objects to the ground with geometry nodes. I mean along z vector to chosen object based on the original instanced object's origin. I am trying to stay within a stable blender build if possible.
In 2.93, the current full release, using only GN? No. In 3.0 alpha, using only GN? Yes, if the release notes are accurate and it's not bugged out. In 2.93, using something else in addition to GN? Yes.
The easiest way to do this is not to use GN at all to achieve this, but to use an object constraint. In 3D viewport, object mode, select the thing to which you wish to snap, shift select the GN object, and shift ctrl c (add constraint)->shrinkwrap. On the constraints tab, edit this constraint to work in "Project" mode and enable "Project opposite." This will shrinkwrap the origin of your GN object to the mesh, in the direction of its Z axis.
It will not shrinkwrap every vert of your object, just the origin of the object (from which all GN functions are measured.) From what you wrote, it sounds like that's what you want-- but maybe I misunderstood. Even so, if you want to use GN to snap multiple components to a mesh, you can use a shrinkwrap modifier (again, on "project" mode for shrinkwrapping in a particular axis) before your GN modifier.
Actual implementation of a shrinkwrap modifier would probably depend on exactly what you're after, but it's likely to be, start with a default plane, subdivide it simply a few times, give a SW modifier on project in both negative and positive (otherwise, defaults), then run your GN modifier.