Ethereum architecture is different from that of bitcoin. Bitcoin was made only for cryptocurrencies but Ethereum is much bigger than that. So you can not replicate the bitcoin behavior in Ethereum. In Etherum each address is a single identity in itself.
So if you are creating a new address for each user, you have to pay fees to withdraw funds from each address.There is no alternative unless you give each user a single address (or an address from a fixed pool of 10 addresses).
Talking about the giving each user a unique address. For transferring ethers the gas used by the transaction is 21,000. If you set gas price to 21GWei, the transaction will cost you 0.000441 Ether ($0.13, quoted from etherscan.io). So you have to spend $13 for every 100 users. This is not a big amount you should be worried about but again it depends on requirements of the product. I don't see this as a major concern.
Now if you by providing each user an address from a fixed pool of address, you don't have to pay huge fees but this comes at cost of losing anonymity. So this a trade-off between what you want good security and anonymity or lesser fee.
You can get a detailed explanation here.