From my somewhat limited experience, I would say that a death march project is any project that results in developers working insane hours for a long period of time. These developers usually burn out well before the deadline.
I've seen a couple of ways that these situations come about:
- Overoptimism about the project's status.
- Time pressure external to the project.
- Other team members slacking off, leading to a couple of developers taking up all their workload.
- Any other general software development pathology you can think of (unrealistic schedules, scope creep, bad management etc.)
I would have to say that number one is the best indicator for me, because it's usually the cause for all the other factors. For example: overoptimism leads to exaggerated claims to the client, a willigness to accept scope creep, laziness etc.
I also think it's worthwile to note that this is not always the fault of management, the design team or any other parties not directly involved in programming. Programmers often over-estimate their abilities and can also write buggy code that sets a project back.