I was using a script that extended ActiveMagicEffect instead of Actor for the same reason... until I ran into some trouble that I couldn't find a way around. But depending on what you want to do, you may have better success.
I used this to find out what actor the effect was attached to...
ACTOR property ThisActor autoEvent OnEffectStart(Actor akTarget, Actor akCaster) ThisActor = akTargetendEvent
After that, you can use an OnHit event to do things to the attached actor when struck... and also to the attacker...
Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, \ bool abBashAttack, bool abHitBlocked)ThisActor.dosomething() ;does something to the scripted actorakAggressor.dosomething() ;does something to the attackerendEvent
I believe that's what I did. There is more flexibility to using a script that extends Actor, though. I believe that SkyProc can apply scripts to every actor through a patch. At least, that's what I'm hoping for ;-P