If there's any difference between executing on a set of relatively local nodes vs on a set of widely distributed nodes it would be in the increased time required to move large amounts of data back and forth between nodes. If you have a problem that involves crunching, aggregating and joining large amounts of data then you will necessarily be sending large amounts of data between your nodes. That means that no matter what platform you choose (hadoop, storm, etc) you will have to deal with this issue. BOINC or some other volunteer-based system may be cheaper, but your implementation will still be hit with high data transfer costs. Furthermore, you'll likely introduce node heterogeneity into the mix which will make your implementation even more interesting to develop and debug.
And by the way, hadoop and BOINC are two very different animals solving very different problems.