Hmm, I think I got lost somewhere and am having trouble understanding what exactly you’re trying to achieve. If you have a smart contract which you expect users to interact with directly, in other words they form the correct SC transaction providing the datum and redeemer, etc., then either they will have to send some amount of ADA along with their transaction to withdraw from the smart contract or someone/some mechanism would need to. A smart contract is passive, meaning the only way to engage it is via a transaction of some kind made by some person or application. So a user cannot, using an empty wallet, make the smart contract do anything. The transaction is like the electricity to the light.
So if you want to remove the requirement of a transaction by a user who needs to withdraw money from a contract, then you will have to pass that responsibility off to someone or something else. So yes, in the case of doing such a thing, you would need a wallet with ADA in it and some sort of application to “listen” for a user’s request. But honestly, imo, it’s sort of reinventing the wheel to do this in a centralized way if the only roadblock is an empty wallet of a user, it seems like a reasonable requirement that they need at least 2 ADA to interact with said contract.