Just spent a couple of hours trying to figure out why one page of a Force.com site was not working. That page – unlike some other working pages – makes use of apex:column components to display SObject fields. This suggested a problem with profile FLS or CRUD settings. For sites (that allow anonymous access) these are managed via a special profile accessed via a “Public Access Settings” button. But after numerous checks and re-settings the fields refused to appear.
An atypical characteristic of this particular site setup is that the objects, classes and pages are in a managed package installed in the org. With several of the site pages working, I had paid no attention to the package installation. But the problem was that the package had been installed but not deployed. As soon as it was, problem solved.
The lesson is that when using a managed package always double check that the package has been deployed by confirming that the “Deploy” button is grayed out.