It can be used with ASCII protocols just like telnet, but also can and often is used as a "pipe" into TCP for batch data transfer, because it will not alter any byte sent through it. Netcat often also offers non-TCP transports (UDP, sometimes SCTP, local Unix sockets) whereas Telnet clients are TCP-only.