There's no problems with the way you're deleting the buffer objects. I'm questioning where and when you're doing it.
Likewise I would ask this question. I don't mean to sound insulting, and I may be very wrong here, but you may be someone who has previously only ever used immediate mode, has received advice to use buffer objects instead, but is trying to use buffer objects in the same way as you used to use immediate mode - i.e. specify vertex data on the fly and on a fairly ad-hoc basis. If that's the case then you've got a deeper design problem that you also need to resolve, as well as a requirement to better understand how buffer objects are supposed to be used.