It depends on which buttons, you already got alternatives in the posts above. For some things, you need to check continuously and it's perfectly fine, for others you have a better way - for example PrimaryAttack for IN_ATTACK. But you have to realize that PrimaryAttack still relies internally on frame forwards, it is called from ItemPostFrame which is in turn called from PostThink.
It seems you have a lot of scripting questions so you should post your questions in scripting help instead. Also search, you can find answers for your last question.