It can be done. It requires two spells, however, the first being the ability that you want to turn on and off, the second being a scripted lesser power (cast on self of cource) that turns it on and off. Give the lesser power spell to the player, and in it's script put:
scn YourScriptNameshort DoOnceref CasterBegin ScriptEffectStartset Caster to GetSelfif ( DoOnce == 0 )Caster.AddSpell YourAbillityset DoOnce to 1elseCaster.RemoveSpell YourAbilityset DoOnce to 0End
If you're using OBSE, you can check if the spell is present instead of using DoOnce. Unfortunately, vanilla oblivion doesn't have a function that detects a spell's presence.