You don't need a crossover cable on modern hardware (the LAN chip "handles" it automatically with standard CAT5+ Ethernet wire). However a hub/switch/router is a much easier way to do it but if you want to do it PC to PC directly get an ethernet cable and plug both PCs into each other then set both of their IPs to 192.168.1.0 and enable file sharing and public folder sharing under both of them (windows only, can't remember what to do on Ubuntu) and then go to Start, network, and find and browse the other PC.
P.S. I have done file transferring without a crossover cable using many different PCs and cables.