If you do decide to use a custom interface PCB, but are still thinking of a cheaper alternative to the USB-6501, another option might be Arduino. LabVIEW has a Toolkit called the
NI LabVIEW Interface for Arduino Toolkit, which is free.
There are quite a few Arduino hardware options that include more than 20 DIO lines. LabVIEW can control the Arduino via the usb port (just like USB-6501).
The biggest negative however would be that more effort is required than the standard NI hardware, as you'd expect.
The thing I like about Arduino is the form factor. You can build and design your custom interface PCB as a prototype Arduino Shield board. The shield quite simply plugs into the Arduino, creating a "stacked" devices. There is also an existing Arduino Shield that includes controllable relays...