The social contract is between two people who decide to treat each other differently than would two stranger. Usually it's not a legally binding, or even verbal, contract. An example of this would be for person A to overlook person B's bedside manner, if person B ignores person A's big nose. Person A is getting more benefit out of this deal than is person B.
Maybe it's because I believe in passive aggressiveness towards people I don't like that lead to me being blunt to people I do like. I feel that by pointing out people's shortcomings, they might either realize the presence of the problem, or the severity. Telling someone that they had a great presentation when they didn't doesn't help. Telling someone that they needed to project more, explain ambiguous things, and to do more reading on the topic does. Having a secret affair with someone's husband doesn't help. Telling someone to divorce him because he's a whore that have slept with you recently helps. Not having an affair but not telling about his whorish habits doesn't help. Not having an affair and telling about his whorish ways help (more than the second option).
It is hard to know the balance between being useful and being offensive. Hell, if it was easy, I might actually have some friends. Some finer points of the contract is to know when it's time for the other person to speak. When they're talking about losing a close relative, it's best not to complain about how you're trying so hard to learn Japanese. Don't complain about school being hard, if the other person's in Science One (especially if you're in Arts). Don't complain about Science One when the other person's talking about something personal.
On the flipside, don't compromise who you are as a person in order to try to maintain a friendship. That's what boyfriends and girlfriends are for. If you can't be you and be a good friend at the same time, it's better off being you. (Unless you suck, then by all means, change)
Make sure you're putting as much into the friendship as you are getting out. A friendship with an unbalanced ledger usually fails. As a tangent, support your friend's cooky beliefs, and accept that they want to grieve for Heath for months.
A friend with benefit is kind of redundant. A friend with benefit without the benefit is not an oxymoron.
Don't let other's perception of your friend influence yours. This is something that I've been purposely trying to change, and I think I'm getting better.
If any part of this contract seems ambiguous, just think to yourself, WWPED.