I went and compiled both john and crunch on my laptop and put them into $PATH
The hashed password is 'test', and test.txt just contained the word 'test'
The above worked fine. I ran
echo test | john --stdin --format=NT hash.txt
cat test.txt | john --stdin --format=NT hash.txt
again, and it worked fine!
crunch 1 4 | john --stdin --format=NT hash.txt
When I got the error before, it was on an installed Backtrack 4 on my netbook. I'll see if I can reproduce the error on it in a few hours