This might be a bit complicated so it will take a bit of explanation.
I have two ui panels. One of them has a set of three buttons (panel A), each of which transition to another panel (call it panel B). If the user clicks one of the buttons, panel A fades out and loads the following ui panel (which "fades in").
A fade out process basically activates the tween object of the panel, causing it to go transparent. At the end of the tween, a function is called which disables the uipanel's gameObject (using something like NGUITools.SetActive(gameObject, false)). Right as the fade begins, the buttons of the fading panel are disabled to prevent any spurious clicks during the fade procedure (by setting each button's isEnabled property to false).
Basically panel A is supposed to fade out while it's buttons are disabled, and it's supposed to be disabled after fading completes. That works for the most part, except when it does the fading procedure the first time after the menu loads and the user clicks a button, the buttons can be clicked during the fade -- they are not disabled even though they are in the code. That's the bug. Now let's say the user goes back from panel B to panel A. The same button is clicked again and panel A fades again. This time the UI behaves perfectly. So this bug only occurs once...and I'm not sure why.
Anyway, I can provide the relevant code...I just thought I would explain from a higher level before doing so. Any suggestions would be appreciated.