This article is from the ZTerm FAQ, by Les Jones email@example.com with numerous contributions by others.
In the ZTerm manual, Dave Alverson suggests using "sz -w 2048
filename". Here's an explanation from Fernmail author Dave Platt:
"The commonest reason for this sort of failure-to-resynchronize is,
in my experience, excessive data buffering between the sending "sz"
process and the receiving program. The ZModem protocol can become
badly confused if you're connected to your host via a TCP-based
terminal server or some similar serial data switch. If the terminal
server and the network software provides a substantial amount of
data buffering (as it probably does), then the two ZModem processes
will each see a _long_ delay between the time that they send a
message to their peer, and the time that the response to this
message makes it through the network to them. This delay will
interfere with the protocol's error-recovery timeouts, and can lead
to an endless stream of recovery attempts.
"I strongly suggest using the poorly-documented "-w" option when
downloading files from a mainframe or workstation, unless you're
_sure_ that all of the data communication links between you and the
host are running at the same speed and don't do data buffering. The
"-w" option enables a four-packet sliding-window mode, which will
guarantee that sz will never "get ahead" of your Mac by more than
the window-size that you specify. As long as the window size is no
more than (e.g.) 10 seconds worth of data, there won't be a problem
with the retry timers expiring before the window is emptied.
"I usually use "sz -w 2048 filename" when downloading. In fact, I
have "sz" aliased to "sz -w 2048" to ensure that I don't forget to
use windowed mode."