I am puzzled. My Haas Manual says M98 is Sub Program Call and M99 Sub Program Return or Loop. Possibly you mean G98 Canned Cycle Initial Poibt Return and G99 Canned Cycle R Plane Return.
When there are obstructions you should use G98 and set the Z position ahead of the drill cycle high enough to clear them and set R just above the work. The drill cycle will rapid down to R, peck the hole retracting to R and then return to the Z position before moving to the next hole.
An open mind is a virtue...so long as all the common sense has not leaked out.