Okay, seems I've noticed this behavior on a few types of objects now.
If I have a game object that has ANY children that have a UIWidget disabled, clicking will ALWAYS pick whatever box collider is behind this object.
I first noticed this with a UIToggle. Since I have a button that is more complicated than just turning on/off a single sprite, I was turning off all the UIWidgets under the "on" GameObject.
i.e.
UIToggle (This GameObject has the BoxCollider)
--ON (Blank GameObject)
----UISprite_0
----UISprite_1
----UISprite_3
----UILabel_0
--OFF (Blank GameObject)
----UISprite_0
----UISprite_1
----UISprite_3
----UILabel_0
Now, everything is fine, until I set those UIWidgets nested under "ON" to be disabled. For some bizarre reason, the current.pressed in UICamera ALWAYS thinks I am now clicking on the background, and not the button. After being frustrated at this for a while, I found that if I took "ON" and made it a sibling of the UIToggle GameObject, everything worked fine.
Later on, I am now seeing this behavior creep up again.
In another UI element, I have one button that is moved and placed over a socket of sorts. Now, both the socket and the button have BoxColliders. The button has many UIWidgets, all of which have a depth greater than all the UIWidgets of the socket. Depending on the state of the button, some of these UIWidgets are enabled, sometimes they are disabled. However, ever since updating to 3.0.2, the socket ALWAYS eats the input, even though it's BoxCollider is behind it (set by Z). I've messed with Z's, BoxCollider Z's, and the only way the button will take input over the socket is if switch all the UIWidget's to enabled.
What's going on here?!