Excellent!
What program did you use?
Paint.
You could probably automate it a little bit with a spread sheet. The states are ordered based on the basis of voting with the national winner, with the later elections always having precedence.
Each state has a channel 12 pixels wide, with 8 pixels used for the actual coloring. So for example the 29 States that voted for Obama share a channel 29 x 12 pixels wide (0-348), but the red area is an area 29 x 8 pixels wide centered within that area (58 - 290).
A result of the above is that when states split apart, the outside edges of the split groups shifts 2 pixels times the number of states in the opposite group. So for example when the 9 states that voted Bush, Obama, split 7 (Bush, Bush, Obama) and 2 (Gore, Bush, Obama), the left edge of the Bush 2000 states moves outward 2 x 2 pixels, while the right edge of the Gore 2000 states (NM and IA) moves outward 7 x 2 pixels.
The 20 States that voted Kerry, Obama (NH through DC) were copied from the 2004 chart. Similarly, AL and MS didn't change once they had split off. But the rightmost (Republican branch) had to be redone because of Virginia (which had been with OK), and Indiana (which had been with SD) switched.