If you just want to receive bitcoins for donations you can simply through a QR code of your address on your site.
If you're looking to process payments for selling items and services then things start to get a little more complicated. Most people go with a third party service to make the integration a little easier. So paying a fee is for the convenience of not having to code your own solution from scratch. There are some options that don't take a fee, but you'll need to know how to do some development on your own.
If you're looking to accepting deposits for users so they can buy/sell/gamble bitcoin with other users on your site then it gets even more complicated.
Hello, I'm looking for accepting deposits from users, the 3rd party service is the last choice.
You'll need to run bitcoind on a VPS - most 3rd parties aren't okay with being the backbone to gambling sites.
Use bitcoind's JSON-RPC to communicate with the wallet and your web server.
Create a member login system where every new user is assigned a unique address from your bitcoind wallet.
Use walletnotify to monitor for new deposits.
On new deposits compare the receiving address to your database of users to identify which user deposited funds and credit their account accordingly.
It might be a selfish promotion, but my book goes over how to do this. The last chapter is creating a game with bitcoind and how to accept deposits.