Solution
Hello. I have had this problem and also the solution. In my case and probably in yours too the problem is the optical drive bezel which sits between the optical drive and the external DVD slot. It is attached to the side of the enclosure and the discs pass through it first as it ejects to exit the external slot.
If this bezel warps in any way a disc may push against it, feel a bit of resistance, give up and decide to stay inside the drive. This was the case in my situation.
You have some choices.
1. Fix the bezel or
2. Replace the bezel
In my case I took out the bezel, manipulated it, bent it back into shape, stuck a small knife through it and turned it to widen the bezel. I kept putting a disc manually through it until I was satisfied it was going through it smoothly as I continued to manipulate the bezel. I then sat it back into the enclosure without screwing it down and checked the disc was moving smoothly through it until I was satisfied. I then put it all back together and this solution worked for me and it is now ejecting working fine.
I would like to add that if the problem returned, next time I would just buy a new bezel and install it. (available at iFixit) The instructions for doing this whole job can be found below in the below link to iFixit. Just follow the instructions carefully and use the correct tools. Also, a screwdriver with a flexible attachment that bends will be of tremendous help. Good Luck
Installing MacBook Core Duo Optical Drive Bezel - iFixit
PS. If you need to get a disc out in the meantime, what I did was insert a small coin into the external slot about 40% of the way, at the slot end closest to the front of the MacBook. As the disc tries to eject, Turn the coin towards you al little , anti-clockwise just a little firmly to create extra space in the slot while the disc is ejecting