Я когда-то давно писал абсолютно индусское решение. Берётся структура GIF-файла, курится мануал по ней. На Javascript пишется генератор такого изображения (с заголовками, структурой и прочим). Если изображение статично, и надо менять только цвета - это проще.
Далее всё изображение записывается в массив байт, и кодируется через base64. Ну и
Код:
element.style.backgroundImage='url(data:image/gif,base64:.....)';
Или как-то так, не помню точно.
Для сжатия кода разделил на "before" (левая часть кнопки), "after" (правая) и сам бэкграунд (всё остальное). Для IE это единственное нормальное решение, которое гарантированно будет работать в любых версиях... Если JS, конечно, включен...
P.S. 2000 сообщение.