Because it's better than having tests that pass first then fail later.

No kidding. This is true. At first I couldn't understand why TDD evangelists would say that a test should start at "red" (or even fail to compile at all) before you put in code that will make the test pass or go "green." I mean, it's a waste of my time, isn't it? I know what I need to do and I don't need to go through this red-then-green sequence when I can go to green immediately.
It was only recently that I realized why: because a test that passes at first try
doesn't give you (as the programmer)
confidence that the code is behaving as you intended. It might have passed by sheer serendipity or by the way the test was constructed. On the other hand, failing a test first means you know what you need to accomplish (pass the test) and that your code (under test) lacks the thing that will make it pass. So once you finally get it to green, it means that the code you've put in yields the correct behavior. And taken together with the previous test cases (which should still be green, of course), it means that the code is on its way to correctness.
I shall demonstrate how I came to this realization with sample code in my next post. For a change I'll use PHP for the demonstration. I've come to realize too that PHP needs test-driven code more than anything else, because of its loose and typeless nature. More on that later!