A couple ways I'd do it. Others may have better ways.
1) Not sure if you need contact output or not
2) If you ALWAYS want it in surface contouring (fixed axis and/or variable axis) you *could* have the post automatically convert any cutter comp info to 3D cutter comp instead of 2D (G41/G42) based on operation type and/or tool axis type. Ccreate a "junk" Siemens 840D controlled 5 axis mill & look thru their procs on how they do it.
If you want to be able to use either 2D or 3D in any operation, you may need to add a "3D Cutcom" UDE (I don't there is one yet, but they may have added something after NX7.5 that I haven't noticed yet), or add a parmeter (or options) to the existing cutcom UDE to signal 2D or 3D output. (your 3D could just set a "use 3D comp" flag, then use the normal cutcom ude to get it to turn on/off as needed)
3) Post output. In the G_cutcom word definition, you could add a variable "$tedarencn_cutcom_suffix" to the "Trailer". Then make sure it is correctly defined ("" - empty string - for 2D case, ".2" for the 3D case. (note you may have to set to "" to get G40 instead of G40.2 for cutcom off). This may need to be done in the "cutcom on" and "cutcom off" events under "Machine control"
Or just add a whole new word, and enavle/disable as needed.
Hope you understand, if something's not clear let me know.
Production: NX10.0.3.5 MP5 + patch/TC11.2
I'd rather be e-steemed than e-diseaseled
If I want to use 3D Cutter Compensation - I analyze "info exist" mom_contact_normal, if exist - it's mean that customer set checkbox "Output contact normal" and output with 3d cutter compensation. Yes, I use in this case different trailers for XYZ.