After all these years, I finally figured out how to configure udev to load my network devices in the correct order.
In the past I compiled my own kernels and could force the card I wanted to be eth0 by compiling it into the kernel, then loading the card I wanted as eth1 as a module. This worked well. Of course, udev provides a "better" way, and now that it's five years old, I finally decided to learn it!
As with most things Linux, it was easy to do, once...