There are several ways I can think of that could cause this behavior:
The user has managed to open the same document in 2 different tabs in the Notes interface. Usually this won’t occur but it is possible using LS to open the same document multiple times. Edit and save each tab and you can generate a Rep Conflict.
There is code somewhere in your form which programatically saves the document while it’s open. i.e. calling the Save method of NotesDocument during the QuerySave might under the right circumstances cause your conflict.
As someone else mentioned a scheduled agent updating the document at the same time the user is making a manual change.
Some kind of “admin” function that allows certain users to update a document at any time.