Make shipping optional ubercart
Make a new flat rate shipping quote called 'No shipping' with zero cost. Then in the Delivery method pane at checkout the user can choose between your shipping option and your no shipping option. 

You make shipping quotes at /admin/store/settings/quotes specifically the 'Add flat rate quote' link /admin/store/settings/quotes/methods/flatrate/add

Obviously you need both the ubercart shipping quotes module and ubercart fulfilment flat rate module enabled.