As i know from practice, neither of Windows OS give you direct access to communication resources, as it was with MS-DOS. Some programs can (or may) get access to low-level registers, such as I/O registers of LPT or COM, via emulation of ones on Win95, Win98 or WinME. But, on NT-based OS, lilke NT or XP, you will not gain access to LPT and COM registers at all.
Probably, your programmer need such access to perform operations.
So, you're right, you have three ways, use mustdie OSes, or DOS session, or change a programmer.