Check out the Quality Attributes object out. As this is a sub-object of the Project Object, you can have a list of 'benefits' per project. The benefits could be different for different project types or partitions, and use fields like 'Requirement Met' to indicate whether the benefit was realized or not.
You could also have different types of Quality Attributes, where some might be "Benefit," "Customer," "Market Share" or other types, as you define them, one row (record) per benefit, and each record can have several fields (Benefit Type, Benefit Name, Description, Priority, Weighting, Ranking, Target Realization Date....whatever you need to describe/categorize the benefit by).
We've actually turned this object into our 'Checklist' object and created a "Question" sub-object to hang off of it - the summary of the attached questions are used to drive r/y/g stoplights on the Checklist (Quality Attributes) object.
So, the answer is "Yes, there is a way!" You'll probably need to do some configuration work - and you can go as simple or complex as you want/need to. The Quality Attributes object might be simple, using out of the box capabilities, if you don't configure anything - or, it can be your most complex solution, too, if you decide to turn it into a Checklist solution, as we have done.
Rob's idea is good, too - if you only need a couple attributes added, having them on the project object makes it real easy to include them in object based portlets.
Don't build in more than you need. You have a range of solutions to work with, depending on your objectives.