Generally is to hide the natural drop-down on the form and add a custom drop-down over which has better control. Then in a Client script, Can make changes from the custom drop-down and apply those to the hidden field.
But the user can hide that field and use a custom one.
For example, if you wanted the standard options to filter based on some criteria, and then script the custom field to write the value to the standard field.