For example: I am a vegetarian and don't allow meat in my house. It's my house, I can set the rules. If you are my guest, you have to abide by them. It's quite simple, really.
Shelters are paid for with public money to do a specific job, which is to create a safe place for people to sleep for people who have run out of options. The public should be able to examine whether restrictive shelter rules are helping or hurting the shelters' ability to do their job.
And, in fact, this happens pretty regularly -- there were public hearings on revised shelter rules about a year ago (http://www.sfbos.org/Modules/ShowDocument.aspx?documentid=51...). A lot of people argued, correctly in my opinion, that the current regime of shelter rules put an undue burden on poor and homeless people, and make their already incredibly difficult lives even harder.
That's not what we should be doing. As lots of other people in this thread, and all throughout the community of people who study poverty alleviation, have pointed out, simply giving someone a home, or some kind of shelter, without conditions, is by far a more effective approach.
The whole idea of subjecting homeless people to more restrictive rules than anyone else faces to keep their housing is based on the notion that people are homeless because of some personal failure or lack of self-discipline. The data do not support this assumption, and we need to stop making policy based on it.