In the Ethereum networks Ethers are earned by mining and via transaction's Fees.

If a user want to use the contract normally, he pays only the transaction fee to the miners while he is sending a normal transaction. thus, in the normal scenario userB pays nothing to user A. However, userA could set a rule in his smart contract to force the users to pay him before using his smart contract (e.g he could ask the users to send ethers to the contract he is controlling and then forwarding all this money to himself).