You can hook Ham_Item_Deploy and set m_flNextSecondaryAttack to 9999.0, and also use cs_set_weapon_burst.
Then hook Ham_Weapon_PrimaryAttack and set m_flNextSecondaryAttack to 9999.0.
You might also have to set m_flNextSecondaryAttack to 9999.0 when the player finishes reloading too.