This is precisely why I chose to use PNG - alpha layer and truecolor. Using GD I can always merge a non-alpha enabled image into a bitfield that supports transparency, so that actually isn't much of a problem. I have all of the image merging split into steps.
I actually have never programmed in PHP before; my main language is ANSI C and I have dabbed in x86 Assembly. I found PHP to be so easy to work with - no type casting is needed: the language takes care of that and the feature is build in. With PHP I also only have to write code for one session and the parser takes care of the rest.
Normally I program in lower level languages, so I would like to ask if PHP takes care of handles to files on its own. For example, if two people access the site at the same time and two sessions try to write to the image at the same time, will they both write data? Or will one session wait for the other to stop using the file before accessing it? I guess this is more of a GD question, because it would be library specific.
If the answer to the first question is yes, then maybe two people are posting images simultaneously and the two instances of the script write to the main image at the same time and corrupt it? This would have to happen in a small window of time, which would explain why my script works most of the time.
PS, thank you for your swift reply.