Nice post-mortem from Hipmunk explaining why Protyping is such a valuable tool:
If you don't prototype your application before you start building, you're doing it wrong. It's just too much value for so little effort, you'd be nuts not to try it out.
I totally agree with this statement. I've done projects where we fully prototyped the solution prior to implementing and while it didn't catch everything it made us think through the solution before putting code to it. Small tweaks were easy to test inside the existing prototype before code was written. On top of that we are able to put the prototype in front of customers and get invaluable feedback early on.