This seems to stem from an extremely optimistic function of the kernel's forcedeth auto-negotiation which pops on a few times at gigabit speed, blasts some packets and then kills itself before it gets a response, and tries again several times before then trying at 100, and sometimes catching before the kernel panics. On the nic itself you can watch this behavior... orange is 1000, green is 100. This is my cheap and dirty fix for them.
If you have a smart/managed switch (in the case of cisco, first update the firmware), set that port to identify at gigabit. No need to negotiate... but it still runs through this terrible routine without a possibility to negotiate for some reason. Identifying at 100 it does not do this dance, and just boots... but who wants that? A simple hack to deal with this is to edit /tftpboot/pxelinux.cfg/<mac address of MD> and add "panic=1". It will panic the first time and reboot, and for some reason rebooting, rather than cycling power, it will come up correctly and load.