Why do people donate money to others engaging in activities for charity? In the UK and elsewhere individuals often engage in activities (e.g., running, shaving your head, etc.) for the purpose of eliciting sponsorship. The money raised is then donated to charity.

Questions:


What motivates people to give money to the participants who then give it to the charity? 
If the cause is worthy, why not give anyway? 


Possible explanations I have include:


The participant willingly endures hardship and people give money as a reward for that hardship. In other words, it is a form of an emotional blackmail. This would mean that someone apt at the type of activity should receive substantially less. 
The event is fun to watch and it is merely a PR opportunity.
When people ask others whom they have a relationship with to sponsor their activities for charity, the requester is providing two things to the potential donor:


An awareness of the cause and the given charity which supports that cause (the cause is, in essence, a problem)
An prepackaged opportunity to help the person they know contribute to the cause (a solution!)


An essential prior factor here is that most people in the developed Western world have had a sense of charity and 'giving to those less fortunate' culturally drilled into us for most of our lives. That's why when we hear of some charitable cause, we're immediately inclined to feel that 'this is important!'. 

In many cases, to the person being asked to donate, the personal monetary cost seems more convenient than shaving their head or running an Iron Man. The friend who is asking you to sponsor their activities is perceived to be doing something more challenging or more uncomfortable than what they are doing themselves, and we feel like they're letting us off the hook.