The accepted answer is good,. This is just my tentwo cents to expand other answers. As, as a site-developer with developer on Drupal 7. Its easyerIt is easier to navigate when upgrading many custom modules, few features, and parent- + custom/custom sub- subthemethemes.
- sites/all - /modules - /contrib - /custom - /features - /libraries - /themes
- sites/example.com - / /* same as sites/all/* with site-instance specific needs when appropriate*/appropriate