Thanks for the great question.If for example I set up a button with "art" as a custom capability and the user is happy with that and down the road they also buy the "music" option will s2member update the user to say "art,music" or is there another process?
Yes, but you need to create a Modification Button with s2Member's Button Generator. Supply both Capabilities in comma delimited format, and establish the cost for the upgrade. The important thing to realize, is that s2Member is NOT yet capable of just adding a single Capability to an existing one. You have to give s2Member the big picture, and include a full set of features in each Button Code. After checkout, s2Member will update their existing account to the new feature set; based on the Level and Capabilities you configured in the Modification Button.
This Modification Button should be introduced to a Customer that is already logged into your site ( possibly on the Login Welcome Page ), with a link that says " upgrade your account! ".
Also, if a user is not logged in but they already have an account with me, and they purchase a new product will s2member find their account anyway (provided they use the same email)?
Certainly. As long as they're logged in when they click the Modification Button that you generate with s2Member, they'll be updated automatically after checkout, and s2Member will ask them to log back in again, instead of asking them to re-register.