On IPCC you can break the CTI Ports into JTAPI Call Control Groups (so that one call center uses a different set of Ports than the other). That JTAPI Call Control Group gets assinged to the Application on IPCC> Then, for those respective CTI Ports, you assign them to their own Device Pool on CallManager. To the Device Pool, assign the MoH. (You could assign it directly to the IVR Ports, if you wish, however, I prefer doing it at the Device Pool level since you can make the changes fast when updating).
As far as using a ringing.wav, yes, I've done that too. If you only want the ringing to occur on transfer, you would create a MoH source callined "ringing" (or something) and assign that .wav to it. Then assigne that MoH soure to the Network Hold for that Device Pool. The Network Hold is what is played when the system places the call on hold (transfer, conference, etc) The User Hold is what is played when the user physically pushes the Hold button.
Hope this helps. Let me know if you need furthur clarification.
oh, btw, don't forget to reset the CTI Ports - otherwise the MoH won't fully changed