This was discussed here a couple months back. http://lists.debian.org/debian-isp/2004/01/msg00292.html
And a quick search on Google turned this up. http://www.xenotime.net/linux/doc/network-interface-names.txt The manpages for interfaces(5) has a note at the end stating "The ifup and ifdown programs work with so-called "physical" interface names. These names are assigned to hardware by the kernel. Unfortunately it can happen that the kernel assigns different physical interface names to the same hardware at different times; for example, what was called "eth0" last time you booted is now called "eth1" and viceversa. This creates a problem if you want to configure the interfaces appropriately. A way to deal with this problem is to use mapping scripts that choose logical interface names according to the properties of the interface hardware. See the get-mac-address.sh script in the examples directory for an example of such a mapping script. See also Debian bug #101728." So, depending on your setup, you might not have to do a real lot. Just look at the examples in /usr/share/doc/ifupdown/examples/network-interfaces.gz.