Matt,
This gets even stranger!!!
I just ran a test on a vf2 software ver 9.62n
And here's what happens with your code.
Main Program in Absolute:
...
G90 G0 G54 X0 Y0
G43 Z1. H1 M08
(OK here, moves to Z1.0)
M98 P2
...
Sub Program in Incremental:
...
O2
G91
G99 G81 X0 Y0 Z-1.05 R-.9 F30.
(here's where it get weird, it moves to Z.100 abs which would be right, Z1.0 abs - .900 inc = Z.100 abs, then it drills to a depth of z-.950 abs. Were did that come from?)
X1.
G80
I'll try a newer version of software when another machine is free, they are all running right now.
I have never run into this as I have never programed a drill cycle with incremental code.