Fist, there is no "complete" status

Maybe it is a status you created on your own.
What you deal with is "any status setting to done" (checking 'done' checkbox).
Second, what you request already exists for "status setting to closed" (checking 'closed' checkbox').
This means that you cannot close an item with left work.
Then, it you concider that your status "complete" sets item as closed , then it will work as you wish.
Now, your request introduces new need : to have same behavior, but on "done" status.
This means to be able to define on each element type if this item can be "done" with left work.
I image this as parameter because imo "done" does not mean there is no more work to do.
For istance, developer can set a bug to "done" because he fixed it, but maybe there is still some work to test, package, deploy, ...
Request recorded in these terms as Ticket #1816