There is no point even imagining that any ERP can cater for the business rules and needs of every organisation. In a competitive world, each business is looking for the differentiation that makes them more appealing, and given the differences in the nature of products, facilities and equipment there are a variety of operational processes that may be applicable.
Your ERP covers multiple facets of your business. Each facet can have something unique that contributes to the success of the business. Even something small can be a major contributor. The devil is in the detail, your ERP will cover all the general requirements, but it is these small, unique business differentiators that may be missing.
So, either you change to suit what the ERP can achieve, or you change the ERP to suit the way you want to operate. I would say change the ERP. After all, you are not in the business of running an ERP, you are in the business of whatever the business is.
Therefore, the question becomes how to do it without causing problems in the future.
If you directly change core programs then you will be stuck with either re-coding the changes at each upgrade, or foregoing the upgrade and missing out on the improvements that your ERP vendor has made. Neither choice is very appealing.
Hopefully, your ERP has been designed to allow for procedures to be plugged in to override or add to the core logic. In that way you can have a set of protected core programs that are never an issue to upgrade and a set of self-contained custom plug-in logic in smaller programs that are then easy to adjust and re test when a new core version is released.
The benefits of this type of ERP architecture can be seen in lower on-going maintenance costs of any customisation, reduced risk of introducing faults, keeping up with upgrades and, thus, taking advantage of the research and development improvements made to the ERP.