I read about automatic agreement to terms of service here on UX and how autochecking these checkboxes makes them void in court. On the other hand, requiring users to check them off every time they want to post has to be bad UX, not to mention cluttering the interface.
But the problem starts if the one violating the contract is sued and brought to court. I think there are no legally binding way online to prove that you agreed to the service. The only reason is that your identity was not proven.
So in a sense - none of the above mentioned options are "legal".
There are two general types of agreements with online terms and conditions.
Explicit agreements are generally enforceable. These are usually in the form of checking a box that says you agree, or by clicking a button that says you agree.
Implicit agreements are unenforceable and have no legal weight. These are when you have something that says "by signing up for this account you agree to the terms and conditions" or something similar. Zappos and a large legal team recently found this out the hard way.