Solution
Sorry. My cock up. I'd checked and double checked everything so decided to try a spry menu. Same thing happened. The problem was an overflow: hidden in a containing div that hadn't shown up in css styles.
This seems to be a problem with CS5. Changes made in the style panel don't always show in the code and vice versa. Anyway the problem is solved.