I have a Samsung CD - R/RW/DVD Combo which is a hell of a piece of innovative technology. It has till date not given me any problems and not failed in even a single CD burn process.
To achieve the same level of hassle free burning with your CD-R/RW drives, the following tips could be useful.
First of all - the software part.
If you want the CD Burning to be succesful, use only the software that comes bundled with the writer device. Remember CD-Burning Software NEED NOT BE UPGRADED!. The packets of data that are generated by a software are unique to the writer it is designed for - in terms of speed of packet generation, in terms of signalling the laser gun, and so on.
Do not expect a writer that comes bundled with Nero to work successfully with Roxio CD Writer, Pinnacle CD Writer or Easy CD-Creator Softwares.
Secondly - Your Part.
Always set the writing speed during a write operation at a speed that is lower than the speed permissible by the disc to be written to.
This simply means thus - If the speed mentioned on the CD-R is 52x, it is advisable to set the writing speed to about 44x or 48x as provided by the writer even if your writer can write at speeds of 52x.
The main advantage is that the lower speed allows the system to keep the buffers full at all times and prevent any buffer underruns that in turn ensure that the disc is written without absolutely any errors.
This may be overridden in the case of samsung writers as it incorporates a huge 8MB Buffer which is way larger than the maximum size of data that can be written to the disc at any moment of time(52x= 7.8 MBPS ->still 200KB of buffer space free to load the next data to be written).
Third - Do not strain the system while writing to the cd
When the burning process is going on, take care not to perform any memory intensive tasks such as opening an Antivirus Program(NAV/Norton Systemworks especially 2002/2003), or Windows Media Player, etc.
This forces the operating system to share the time between the two tasks and thus may cause the buffer memory to run empty thereby causing a buffer underrun.
Follow the above rules and Happy Burning!