Although USB is widely implemented nowadays, implementing USB communication on your own is much more difficult then it seems at the first sight.
In your case you will need a microcontroller with at least 2 endpoints ( although I think it can also be done with 1 endpoint but it'll be easier with multiple endpoints , and since every common USB µcontroller has more then 2 endpoints this is not really an issue ), each pc will then send data to these endpoints, the µcontroller will then forward the data ( unless it's initializing data for the µcontroller ).
You will have to write some assembler for this µcontroller, if you don't want to do that , get a PIC demo board, you can write in C, convert to asm and load it onto the µcontroller.
I myself find it a pity that developer tools for USB communication is somewhat expensive. The µcontrollers themselves are relatively cheap but its the software/ developer tools, demo board etc that cost too much imo.
You are right, the cost of the cable and the µcontroller will probably be something like 1/20 of the cost of the whole USB network cable in shops.... Its the designing, writing the assembly etc etc that they take into account and charge you for.This is why if you get a USB network cable from a shop (and pay well over the odds for it ) you'll find a little board in between that is the device that both hosts connect to.
:edit:
Just look for any µcontroller with 2 usb interfaces to interconnect them.
Although I think there will be a possibility to do this without any µcontroller between, you would just need to know how windows sets up USB communication. Intercept every communication before it gets to windows itself, and let your program take care of the data that you need, the rest you just forward as if nothing happened.
But it'll be more portable and faster in developing terms to just use a µcontroller between the 2 PC's.