I've done it a couple of times. Both times the end design had significantly creeped from the initial spec/site map.
I learned from the first time, and added substantial contingency budget to the second project. I was clear with the client about the amount of unknowns, and that the more firm information I had, the more I could lower the price. Everyone ended up fairly happy on that one.