Il semble que la plupart des gens ici se réfèrent au CSS, comme si c'était la seule option de personnalisation. Windows Media Player (et Winamp, si je me souviens bien) utilisent également du XML ainsi que des images (si nécessaire) pour définir un skin.
Le XML fait référence aux hooks, aux événements, etc. et gère l'apparence et les réactions des choses. Je ne suis pas sûr de la manière dont ils gèrent l'arrière-plan, mais charger un skin donné est vraiment aussi simple que de localiser le fichier XML approprié, de charger les images puis de les placer là où elles doivent aller.
Le XML vous donne également beaucoup plus de contrôle sur ce que vous pouvez faire (c'est-à-dire créer de nouveaux composants, changer les tailles des composants, etc.).
Le XML combiné avec le CSS pourrait donner d'excellents résultats pour un moteur de personnalisation d'une application de bureau ou web.