Grant a role access to certain content Is there a way to only grant a role access to certain content? 
So that every user given that role can access what they need without others being able to, while still being limited from accessing content that only other roles can access?

Also is there a way to automatically grant new roles to users as a result of performing certain actions? 
Just like how some forums work where you can only start new threads when you've written 10 replies? Only this will be people being able to access a new level of the site when they have say uploaded a file or corresponded with a certain person and that person has given a thumbs up?
The latter I suppose could come in form of you being granted a role when a certain level is reached that enables you to give other users roles up to a certain limit?

Cheers,
Thor
There are a variety of content access modules, so you might want to look around to find one that best suits your specific needs but a good start is often https://drupal.org/project/content_access

As for automatic role delegation, there are a variety of ways you can do so, too. Rules is a great place to start https://drupal.org/project/rules but depending on what your requirements are, you might need to write a custom module. There are also a variety of rules-related modules that expand on it's offerings that might help you out. Rules is very capable for many things but sadly, if you have very specific needs it might be a little more complex than point-and-click.