It's right to customise it when your business requirements state the need to do so ;)
I've recently also came across the concept custom provision providers, which allow you to control the site provisioning process from managed code, allowing very granular control over your site creation.
There is also the possibility to just create a site template (.stp) file (now a .wsp in 2010?) from a Site Definition if you do not require such level of control & detail over the site provisioning process, which is very simple to do but does have it's drawbacks such as limitations on size of the template (when storing contents), and deployment/scalability issues.
So, as for your question as to when is it right and when is it wrong, there are different methods of site provisioning and creating and the key thing that defines which one is right is when your business requirements says so.