Ditto -- my experience too.
in algebraic notation ...
The client thinks they need x, asks for y, when you deliver z they tell you it is all wrong, what they really wanted was a,b,c but couldn't admit to not knowing how to ask for it. You hack z to deliver d and then you find out the manager has left for a new job and the new manager wants e,f,g,h,i,j,k.