It is always possible to upgrade from an earlier version of CVS or CVSNT to a newer version. Downgrading however is not guaranteed to work. In particular downgrading from CVSNT 2.x to CVS 1.x will require some work on the repository format as many features are unsupported in the older version.
The working directory format is compatible going back to cvsnt 1.5. It did change between cvsnt 1.3 and cvsnt 1.5. If you run cvsnt 1.5 or newer on a working directory checked out with cvsnt 1.3, cvsnt will convert it, but to go back to cvsnt 1.3 you need to check out a new working directory with cvsnt 1.3.
Support for the Entries.Extra file varies between versions, however this should not normally affect client operations. Client versions of CVSNT before 2.0.55 used a Baserev file to store edit information. If downgrading a client existing edits may be lost.
The remote protocol is interoperable going back to cvsnt 1.5, but no further (1.5 was the first official release with the remote protocol, but some older versions might still be floating around). In many cases you need to upgrade both the client and the server to take advantage of new features and bugfixes, however.
When changing between platforms care should be taken to avoid platform-specific issues. RCS files are always in the same format and are interoperable, however the CVSROOT control files are often written specifically for the platform, and will need to be updated.
The Win32 port of CVSNT is a fully native application and does not require cygwin. It is not recommended that cygwin CVS and CVSNT are installed on the same machine as confusion and incompatibities may arise between versions.
CVSNT obeys the CYGWIN environment variable when deciding where to store extended permissions. However its default is ntea not ntsec, so this will be needed to be specified if using both environments. The recommended setting is CYGWIN="ntea nontsec tty" which will force both CYGWIN and CVSNT to use the same permissions structure.