Most important step is to train your "customer" about the 4 levels and gain acceptance.
L1 is pre-initiation with virtually no project details. Estimating is done solely by managers using experience, actuals from prior similar work, and their gut feel. We call it the SWAG level, and customer is trained to expect +/- 100%. We also occasionally have to give ROM estimates for our customers to gain funding prior to a project being accepted as real. In this case we use three high-level estimates (worst case, most likely, and best case) and then show three levels of std. deviation to the customer.
L2 is during initiation, when a few more details are known but usually no hard specs. SDLC area leads do the estimates, but still at a high level. Customer is trained to expect +/- 50%
L3 is after business requirements are documented and accepted. SDLC area leads and key staff do the estimates, and chunk work into no more than 80 hour tasks. Customer is trained to expect +/- 25%.
L4 is after technical design is documented and accepted. SDLC area leads and key staff do the estimates, again chunked into >=80 hour tasks. Customer is trained to expect +/- 10%.
Managing requirements changes after L3 is crucial. You have to ensure the customer understands the impact of any changes to scope.
Works for us on $15M of project work every year for a happy customer. Side note: after about a year, it's scary how close L1 estimates can be. Managers aren't all bad. :)