When the mct_intx_ops functionality was designed, it was only enabled for the LargeMultinomialLogitStep model template, and so that is where the code to actually perform the interaction term operations process was stored. But the functionality will likely be useful for other models, so it probably belongs in a more centrally accessible location in the code base. Given that the functionality will only ever be relevant to a MergedChoiceTable class object, it makes most sense to move the method out of urbansim_templates and into choicemodels as a class method of MergedChoiceTable.
See UDST/urbansim_templates#126 for a more in depth description of the mct_intx_ops concept.