Si vous voulez savoir pourquoi il n'y a pas de d à cauchemar, lisez ce petit texte repris au Dictionnaire historique de la langue française (éditions Le Robert):
"CAUCHEMAR n.m. d'abord cauquemare (v. 1375), puis cauchemare (v. 1564) avant cauchemar (1677), est un mot d'origine picarde. Son premier élément cauche est une forme verbale de cauchier "presser" qui résulte probablement d'un croisement entre l'ancien chauchier fouler, presser" (apr. 1150) et la forme picarde correspondante cauquier, du latin calcare (côcher). Le second élément est l'ancien picard mare (v. 1290) emprûnté au moyen-néerlandais mare (maer) "fantôme provoquant de mauvais rêves". Ce dernier correspond à l'anglo-saxon mare "spectre" (d'où l'anglais nightmare "cauchemare", proprement "spectre nocturne"), à l'ancien haut allemand mara, à l'ancien norrois mara, formes remontant à un germanique °maron-, apparenté au slave (polonais mora, tchèque mura de même sens).
[...] De cauchemar dérive CAUCHEMARDER v. intr. (1840) d'où CAUCHEMARDANT, ANTE adj. (1928) et CAUCHEMARDESQUE adj. (1902) réfection de cauchemaresque (1881) par alignement sur le modèle de cauchemarder avec d d'après des mots comme bavard-bavarder pour "effroyable, digne d'une cauchemar"."
Vous pouvez aussi lire l'article du TLFI