Correct way to customize modules?
You can create two folder contrib and custom inside sites/all/modules. Drupal is able to look up any folders inside sites/all/modules to discover the modules.

If it is multiple site structure, you can do the same in sites/[site_name]/modules

For the custom templates and styles, if you means the theme one, you can place the theme in sites/all/themes/custom, otherwise, templates and styles can be placed inside custom module.