Duke University conducts a hackathon named HackDuke. In the last couple of years the theme has been Code for Good. HackDuke stresses on collaboration and not on competition. Participating teams build technical solutions to help non profits in fields such as education, health & wellness etc;
Prizes are usually categorized into two - grand prize and company sponsored.
The grand prize awarded to the winning team will be donated to one of the participating non-profits based on the team's choice. If you apply this strategy, which ever prize you award, it comes back to your charity. Almost no expenditure :)
However, there were a few sponsors, who wanted to give prizes to winners. To know more, please check this link http://spring2014.hackduke.org/prizes