Ok, so it’s this simple. If I want to make a change to app/code/core/Mage/Sales/Model/Quote/Address/Total/Shipping.php then I first duplicate the file to app/code/local/Mage/Sales/Model/Quote/Address/Total/Shipping.php I then make my changes in the second file (located in local instead of core) and upload it the same way I would have uploaded the one in core. Magento looks at the local folder and takes any changes made there and overrides the core folder with them.
The attached file shows the above in picture form. Let me know if you have any further questions or if that doesn’t make sense.
Click thumbnail to see full-size image