donc tu as installé XP sur le 120 Go (je suppose que pour l´install tu l´as monté temporairement en master ?) puis tu l´as remis en slave ?
et ensuite tu as remis le 40 Go en master pour installer Linux ?
Si c´est bien ça, à mon avis, ce qui s´est passé c´est que comme le mbr contenant le boot de windows est en slave sur hdb (120 Go) et que à l´installation du loader Grub, nunux a cherché sur le mbr du 40 Go, le hda, n´a pas trouvé de trace de Windows, et a donc considéré qu´aucun window n´était présent sur la machine.
Je pense qu´il aurait été préférable de laisser le DD destiné à Windows en master hda, avec son mbr chargeant win, et d´installer Linux sur le slave hdb ; dans cette configuration Grub s´installe sur le mbr de hda et "voit" tous les OS présents sur les 2 DD, et permet donc de booter windows ou linux, au choix.
Tu me corrigeras si je n´ai pas compris ta situation exacte... ;)