I agree 100% about detailed specifications. It's just something that my (current) employers don't believe in.. That's something you see often in Microsoft houses, especially those who've had a strong past in Visual Basic. Software engineering's often lower down the list of priorities than producing quick results is. That's fine for small, in house projects, but falls apart quickly if you try to scale (in complexity or reach).
My personal opinion (and experience) is that rapid prototyping is extremely effective when applied during the specification phase, as long as the code created is cheap. Think of an effort similar to that of putting the concept into the form of a functional/technical specification.
You can cover a lot of 'dropdown' cases by putting the idea of a selectable entity into an interface and implementing that on entities. I'm thinking of doing something similar for filters when there's a master-detail relationship. I'd argue that if your domain involves such relationships, then it's not at all crazy to build infrastructure to cover 80%+ of the cases where it occurs.
For selecting a single code out of 1000, I've found auto-complete combined with a 'searchable' string property (which is unique for the entity) to be really effective.
I should add that, so far, I've always implemented these things by hand.
For the record, I'd be interested in seeing how this problem has been approached in the Naked Objects framework. They must have hit this problem, and must have solved it...
--
Ryan