die() is not useful in PHP - it is not the main error flagging method (unlike in Perl).
Don't use die(), ever.
Instead, if an unexpected condition is detected, throw an exception, which can be handled either by a "try" block in a calling function, or by your global exception handler otherwise.
Neither die nor exceptions should be used to check for non-error conditions, such as validation failure - that is a normal condition and should be treated accordingly. I normally append to a global array $errors[] so that the errors can be nicely formatted and listed individually, then check in the final step of processing if any errors have occured and only actually process the form if none have. After processing I typically redirect to another page (but not always). Otherwise, I show the form with or without error messages and parts prefilled as per the user.
Mark