I've run into the same issue, and I've played with a lot of different ways to try and prevent this, but I haven't really found anything "foolproof" yet.
So far, the most effective solution has been the following:
- Check to see if the file is not in a specific folder
- As soon as the BP starts, move the entry to a folder the users can't access/modify
- Perform any workflow tasks
- Move the file back
For example,
Users can modify files in the "working" folder, but can't change files in the hidden "processing" folder, and the BP rules are set to only work on entries within the "working" folder path
User A starts BP on Document 1
WF Checks to see if Document 1 is in the "Processing Folder"
If it is, it does nothing
If it is not, it moves it to "Processing" and keeps track of the original location
The necessary changes and other activities are completed
The document is moved back to the original location