NZEC means you got WA and your program's return code wasn't 0.
In C, for example, you get NZEC when you do exit(1) or return 1 from main.
It can mean some library function called exit(1) for you, which happens with some C++ STL functions (in case of some error), I don't know how it is in fpc, though.
The real reason why we introduced NZEC were languages which are interpreted (and NZEC can mean interpreter caught parse error) and languages with exceptions, where language itself doesn't allow SEGFAULTs (and NZEC can mean an exception was raised).
Anyway, if the output is correct, program gets AC even if it returns non-zero exit code, so RE (NZEC) is really WA with a bit of additional information.