Ideally, ProtoStar should load user.css
as the last stylesheet.
There are a few ways around this problem which don't involve hacking the core.
1. Specificity
Make your custom CSS changes specific enough so that they override the other stylesheets regardless of the stylesheet order.
Reference: http://joomla.stackexchange.com/a/15853/120
2. EasyScript
Instead of using user.css
for your custom CSS, use a third party extension like EasyScript or similar which loads a custom CSS file e.g. custom.css
last.
Reference: How can I load the new Protostar custom CSS stylesheet last?
3. jQuery Easy
jQuery Easy can be used to remove the stylesheets and then add them back in the desired order.