You should use iterative development only on projects that you want to succeed.
Perhaps that's a bit glib, but as I get older, I get more aggressive about using iterative development. Done well, it is an essential technique, which you can use to expose risk early and to obtain better control over development. It is not the same as having no management (although, to be fair, I should point out that some have used it that way). It does need to be well planned. But it is a solid approach, and every OO development book encourages using itfor good reason.