I'll do the module for you. No need to "sell" the idea further
I was just curious as to how you'd keep +s set, which you've answered by stating unreg'ed channels don't have @ops.
BTW, if you use Unreal3.2.8.1 there is a feature in it to make it so users aren't granted ops when they create the channel. set::level-on-join. 3.2.8.1 valid options are op and none. 3.2.9 will have a feature I requested and partially patched that allows owner, protect, op, halfop, voice or none.
set::level-on-join <none|voice|halfop|op|protect|owner>;The mode that a user will get when he's the first to join a channel. The default is 'op' (channel operator).