I'd often use modified states having the code from common1.cns but altered slightly for the occassion:
;---------------------------------------------------------------------------
; HIT_TRIP (shaking) (Modified)
[Statedef 470]
type = A
movetype= H
physics = N
velset = 0,0
[State 5070, 1]
type = ChangeAnim
trigger1 = 1
value = 5070
[State 5070, 2]
type = ChangeState
trigger1 = HitShakeOver
value = 471
;---------------------------------------------------------------------------
; HIT_TRIP2 (fall through air) (Modded)
[Statedef 471]
type = A
movetype= H
physics = N
[State 5071, 1]
type = HitVelSet
trigger1 = Time = 0
x = 1
y = 1
[State 5071, 2] ;Acceleration
type = VelAdd
trigger1 = 1
y = GetHitVar(yaccel)
[State 5071, 3] ;Hit ground
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 15
type = SelfState
value = 5110
Then afterwards in the state that has the hit that needs that state, I add the following controller:
[State TState]
type = TargetState
triggerall = numtarget(<hit_ID>)
trigger1 = movehit=1 && !movereversed
trigger1 = !target(<hit_ID>),ishelper
trigger1 = target(<hit_ID>),time=0 && target(<hit_ID>),movetype=H
value = 470
ID = <hit_ID>
ignorehitpause = 1
Not sure if this will circumvent the common behaviors, but if they are hardcoded I'm sure they only specifically work for state 5070/5071, but it's worth a shot.
Update:
Forgot to mention not to use Trip type, as well as fall =1 ground.type=Low, and you should be fine ^^'