I wouldnt recommend it, but if you must, I would go with an event handler and not a workflow. Both are a-synchronous, so if the site creation fails the user will now know about it (unless the code sends him an email) and the list item will still be saved (unless you roll it back in the code).
An event handler that overrides the *ItemAdded* and *ItemUpdating* events should take care of it. both events give you access to the properties of the list item, so you can check if the tick box was ticked, get properties values and then create the workspace if needed (maybe even put a link to the work space in a field of the item. I would recommend hiding that field from users in the edit\new forms and only displaying it in the "display" form. You can do that with my utility pack - www.codeplex.com/spstipsutilitypack)
I hope I helped you get on the right path!