If you have an on-premise system, it is technically feasible to create a database trigger that will check conditions and prevent the execution of the cost plan creation, as well as provide a pop-up warning message. Database triggers are not supported by CA and if there are issues with related functionality, will need to remove them before CA Support will engage in assisting in ticket resolution. If you have an On Demand system, database triggers are not allowed under any circumstances.
It is theoretically possible to have a relatively complex custom object in which the desired conditions are set up as required attributes that must be present for the object to be saved. When the object is saved, a process is triggered that then creates the cost plan. This would be a fairly costly (in effort) solution that is not very user friendly. Security would need to be set up to support this.