Ethereum uses the "Ethereum Virtual Machine (EVM)" to execute the code of smart contracts. This EVM is quasi-turing complete. A machine is turing complete when it is able to solve any calculable problem given enough space and time. But why is it only "quasi" turing complete? Because besides enough space and time, the EVM requires enough GAS (Ether). Every instruction, besides the instructions STOP, RETURN and REVERT, requires GAS to be executed in the EVM. Example: If you want to add two values from memory you have to pay 3 GAS for the addition. You can inform yourself about the cost per instruction in the yellowpaper, Appendix G and H (https://ethereum.github.io/yellowpaper/paper.pdf). If a user wants to execute a smart contract and sends a transaction to the ethereum network that contains the order to do so, the user has to pay gas. So to answer your first question, every user has to pay gas if they send an order to execute a smart contract via a transaction. Nevertheless, there is a special case. If you only want to read data using a smart contract, so that you don't change the state of the storage, you can do so without paying gas. This is achieved by running the EVM and executing the smart contract only locally on your computer (or any other computer which offers this service).
How can you avoid this? If you want to protect the users of your smart contract from paying those costs, you have to take the gas from another source. This means that you or somebody else has to pay the gas for the user before they use the smart contract. For example, you could put 1 ether into your smart contract to cover those costs. This is risky though, since you have to protect your smart contract from a "ddos" attack which consumes all the ether you have reserved for gas. Further, you have to watch that you smart contract does not run out of gas for your users, otherwise your services will be unavailable for the users and they are losing their money they have to pay to call your smart contract (every transaction costs 21000 GAS at least).