These cards are possibly the easiest to flash, needing no MS-DOS bootdisk or anything. It can be done inside a standard linux system. This method is known to work for 3C905B and 3C905C, and is expected to work with other members of the 3C90xB family, plus the 3C980C. It is assumed that you have already generated the *.rom image for your card.
There are various ways to get flashrom. It may be available in your distribution (eg: sudo aptitude install flashrom), or optionally you can get it via svn and compile it:
svn co svn://coreboot.org/flashrom/trunk flashrom cd flashrom make make install
The last command must be run as root.
The image created by gPXE will probably be of some irregular size. Mine, for example, was about 55kiB. We need to find out what size your rom chip is. As root:
flashrom -p nic3com | grep "Found chip"
Mine, for example, was 64KiB:
Found chip "SST SST39VF512" (64 KB, Parallel) at physical address 0xffff0000.
Now we bulk out the image with zeroes:
cat gPXEoutputFile.rom /dev/zero | dd bs=1k count=64 > fileToFlash.rom
Replace gPXEoutputFile.rom with the appropriate file and count=64 with count=[your chip size in kiB].
If you look at fileToFlash.rom, it should now be exactly 64kiB, or whatever size you specified.
Now you're ready to burn it. As root, simply:
flashrom -p nic3com -w fileToFlash.rom
If everything went well, the last line should say:
Verifying flash... VERIFIED.