Beware the client who always changes the requirements... :)
Think there is a method of discovering such clients ahead of time? My experience so far has been that people with vague ideas of what they want are the worse. They don't know what they want, so you try to build what they describe, and as they see it forming, they can begin to define the end product. Creating an architecture that makes this possible in the least time consuming fashion seems to be the best route to me.