("dropper" means dropper or dispenser in what follows)
When redstone torches, dust, and repeaters power the block above a dropper, the dropper activates. When levers or buttons do likewise, a block update at y+1 from the dropper is necessary (but not always sufficient) for the dropper to activate.
Screenshot A, B, and C show setups that, when placing the torch/dust/repeater (in the powered on state) or toggling its power on from an outside source, causes the dropper to eject an item.
Screenshots D and E show a lever/button that should do likewise because they power all 6 sides of themselves, yet they do not when toggling their state.
Screnshot F shows that, when the lever (button also) is on, and a block is placed/destroyed on the dropper, it sometimes ejects an item (but only one block update max to y+1 of the dropper makes the dropper eject an item without toggling the lever/button off and on again, while also possibly needing to modify the contents of the dropper).
Related issues
Attachments
Comments


Duplicate of MC-108.

I don't think it's a duplicate of that bug; based on looking at the code for 1.4.7 (MCP's onNeighborBlockChange() function in BlockDispenser.java), I think droppers/dispensers activating when the block at y+1 of them is powered is intended. If that's intended, the bug is that dispensers/droppers receive power differently from levers/buttons than dust/torches/repeaters (and comparators that I just checked now).

Pistons do the same thing and it's up for the developers to decide whether this behavior is intended or not. What you describe here are the symptoms of MC-108 so fixing that will fix this automagically.

Same symptoms, similar cause, but fixing one won't fix the other.