Required Field Validation in Trac
With these few simple changes, you can designate ticket fields (including custom ticket fields) as required in the trac.ini file.
If you have any issues, create a new ticket.
Download the source, unzip to a temporary location, and copy the api.py, model.py, and web_ui.py files into yourpythoninstallation/lib/site-packages/trac/ticket
Note that these changes were made to the 0_9_5 source. If you've got a different version and want to see what the specific changes are in order to make them by hand, check out revision . (Note: I've successfully applied the patch in  to the 0_10_4 source, it was very straightforward - anonymous.)
Download the zipped source from here.
Once you've patched the three python files you can use this patch by adding fieldname.required = true to the trac.ini file:
[ticket] milestone.required = true