So, it was Locke that hit Sayid afterall, to sabotage the attempt to announce their prescence to the "Others". So, if Locke knew that much early on, that he needed protect everyone from learning too much and attracting attention, I have to call into question Ethan again. Locke said (back when Claire was kidnapped) that he should have known Ethan was a bad guy. And now, I say the same thing, if he knew enough to make sure they didn't attract the wrong attention, how did Ethan slip past him? Is there more to this yet?
Locke was doing his protecting thing again when he lied about Boone. Locke believes there's reason not to let the population know about the hatch, because it represents some kind of danger to him. The whole camp wanted his hide, so it was time to come clean about what happened. But he didn't come totally clean, he only admitted about the plane. He didn't admit about the hatch, and in fact lied to Sayid about the hatch ("Well there's a forward hatch and a rear hatch"). It's only after Sayid refuses to allow Locke to lie to him, that Locke finally is going to give the hatch information up. And looking at Walt's reaction, it seems Locke may have a legitimate concern.
Shannon shooting Locke only resulted in a scratch on Locke's head. This she attempted because of her grief and anger. This is really no worse than Sayid torturing Sawyer right before Solitary and throwing the knife into Sawyer's arm, and considering there's no sterile hospital or proper medical equipment, no blood stores, this had the potential to be just as deadly as a gunshot. If Sayid had not left, do you believe they would have locked him up? Jin was handcuffed because they couldn't communicate with him, and so he was an unknown quantity, they weren't able to understand why Jin went ape, and what might calm him down. Once Sun admitted to Michael that she knew English, and explained what the problem was, Michael resolved the issue by returning the watch and let Jin go.