In Windows is it possible to write a simple program to read the binary value of a USB port without going thru a USB driver?
No, at least not in any remotely modern version of Windows.
Accessing hardware directly requires kernel privilege level, which ordinary application programs don't have. Think about it. It has to be this way else one rogue process could cause all kinds of harm.
Drivers not only deal with the hardware details for you, but they also act as gate keeper to what operations applications can perform on the hardware. Actually, applications don't perform hardware operations. They send requests to drivers to perform hardware operations for them.
So no, you need a driver to access any hardware, including a USB.
It assumed that this question is a continuation from How to transition from battery to USB in a microcontroller?. It is also assumed that your goal is to collect data using a PIC micro controller and transfer the data to a Windows base computer.
An alternate is to use configure a UART port on the PIC micro controller to transfer data serially. Then use a FTDI based USB serial cable such as the one in the image to transfer data.
The data can be accessed using a serial COM port on the PC. The USB port will be enumerated as a RS232 standard COM port. This will also help you create simple C program too.
This alternate solution will solve your 3V and 5V predicament from the other question.