I have an update about this situation. I had an open case about this bug, and MS sent a solution for this.
The solution is installing these three ( fixes in the order I write ) kb932091, kb941422, kb937832.
I installed the patches and great news: the error does not occur anymore.
But these patches are just creating a workaround, it does not solve the real problem. After the installment of patches, the behavior of MOSS has changed a bit. If there is a required column on a document library and if it does not have a default value, the workflow does not start after uploading the document; it waits for user to enter the value for the column and check in the document in “starting” state. BUT, if the column described above has a default value, the workflow does not wait for the user to enter the values for the columns, the workflow starts before user enters the data.
You can generate the same situation like me. I have created a document library and I have added the “Picture” content type to the document library. Now, my document library supports three content types which are “Document”, “Folder” and “Picture”. I have added a choice column which has “Document”, “Picture”, “Folder” as choice values, and set is as required with a default value of “Document”.
After I set up the test document library, I have created a workflow with sharepoint designer. The workflow starts automaticly when a document is submitted. This workflow is a one step workflow, which checks the documents content type and sets the added required choice columns value as the content type.
Now its time to test the document library and the workflow. I added a document with “upload” action of the document library. I uploaded the document and I have come to the second step. I did not enter any data and I did not click the “check in” button. I was curious about the state of the workflow. I opened the AllItems.aspx page of the document library. The workflow’s status was “Completed”. Since I have not checked in the document yet, the workflow should not be started; it must wait until I check in the document in “starting” state. Since I have not selected the content type of the document yet, the document library uses the the default conent type of the document library which is “Document” in our example, so in this case, the added choice column’s ( named as A in our example ) value will always be “Document”.