Often it is argued that one big advantage of blockchains is that anyone can come along and inspect the state. However I have not found any practical guide for doing this. Block explorers allow us to inspect transactions, but not state variables (as far as I know). So then how can I inspect state variables for any given smart contract already deployed?
EDIT: The blockchain explorer below is unfortunately dead. So far no blockchain explorer has shown contract state as clearly.
The ether.camp blockchain explorer allows some of this. Go to https://live.ether.camp and then click on "Smart Contracts."
Developers have to upload their source code to ether.camp, because raw code on the blockchain are just EVM bytecode / assembly. As time goes on, we would expect such tools to improve and be more prevalent.
ether.camp already shows the state for any given smart contract, but attaching the source code to the contract significantly improves the user experience.
Etherscan has this service for sure, You can even debug the smart-contract and run different transactions.
The OP is asking exactly the right question. Every participant should be able to inspect all of the data all of the time. But, the two suggested sites mentioned above are a compromise on the real solution. A very important aspect of these cryptocurrencies that is being increasingly lost is the idea full decentralization. The true solution here is not web-based tools that centralize the data. The true solution would allow quick, easy access to all the data all the time directly from a locally running node. Not really an answer, just an important point this seems to rise above the level of a comment.