Yes, to avoid that problem i was thinking in a script that check the value of a checkbox field in the client form.
That field, will change its value depending if certains fields have value inside.
If the checkbox = true, then u can do the SO.
If it is false, then when you select the Prospect in the SO, it will show a alert message, saying that u cant do a SO to that Prospect, and it will show the same message every time u try to save the SO.
A little intricated, but it will be automatic, and i dont have to specify roles or users.