Unless the miners increase the block gas limit your only option is to split the contract into several contracts.
So each contract has its own address, and you can make calls between them. For example an ICO Crowdsale can be split into:
- Crowdsale: Manage the crowdsale, how tokens are allocated, rewards, opening, closing
- Token: Implements ERC20, can create tokens, approve transfer
- Wallet: Manage funds received during the crowdsale
Also splitting helps a security audit since each contract has a limited scope.
Each contract can be deployed indepedently, and through a configuration method you complete the setup.