Thanks for your response.

Does it work if the guest uses ide based CD's:
rmmod ide-scsi
modprobe ide-cd

There isn't an ide-scsi but there is a scsi_mod and when I try to remove that it gives
ERROR: Module scsi_mod is in use by sr_mod,sg,sd_mod,libata

modprobe ide-cd seems to work.

However it doesn't fix the problem.

Interestingly, before doing modprobe ide-cd,
linux> lsmod | grep ide
ide_pci_generic     4652    0
ide_core              115068 2 ide_pci_generic, piix

After the modprobe ide-cd, I get
ide_cd_mod      33984    0
cdrom              36200    2  ide_cd_mod, sr_mod
ide_pci_generic     4652    0
ide_core              115068 3 ide_cd_mod, ide_pci_generic, piix