Two argument V() with ground
I cannot find why you can't refer a voltage with respect to gnd, like v(node1,gnd).

However, as work around, you could make a node called psuedoground (or whatever you want to name it), connecting it to a voltage source of 0V as follows:

use psuedoground netlist
...
V999 0 psuedoground 0
...


This way, a voltage source V999 is connected between ground node named '0' and the node named psuedognd with value 0V, making psuedognd effectively equal to gnd.

Now, you can use always 2 arguments with v(): V(node1, node2) or v(node1, psuedognd).

Note that 0 and gnd is the same.
From the manual


  The ground node must be named ‘0’ (zero). For compatibility reason gnd is accepted as ground node, and will internally be treated as a global node and be converted to ‘0’.




If you plot v(node1,psuedoground) you'll see that very name v(node1,psuedoground) in the plot as well.
In ngspice, you could also name the node 00 instead of psuedognd above as per manual


  Note the difference in ngspice where the nodes are treated as character strings and not evaluated as numbers, thus ‘0’ and 00 are distinct nodes in ngspice but not in SPICE2.