Imagine I create a new account on lets say KuCoin. I create a ether/erc20 address and I send an amount in ERC20 tokens to that address.
KuCoin then sends that to their mainwallet. How do they do that if there is no ETH on that address.
There are a few possibilities. Either they just have ETH on that address, they have already
approve'd another address (they're "sweep" account) to transfer for them, or the receiving address is a contract that they call with their authorized sweeper and the contract just transfers to their storage account.