Excelente pregunta !!!! Porque al menos la puedo responder...

Acá parte del código de un programa de los míos:
Private Sub Drive1_Change()
On Error GoTo errores
rutaDrive = Drive1.drive
Dir1.Path = Drive1.drive " Establece la ruta del directorio.
Exit Sub
errores:
Select Case Err.Number " Evalúa el número de error.
Case 68 " Error "Dispositivo no disponible".
MsgBox "El dispositivo no está disponible.", vbOKOnly + vbExclamation, "Error"
Drive1.drive = "c"
End Select
End SubOk, esto es así, o al menos es una de las maneras...
En el formulario tengo un DriveListBox para seleccionar las unidades de disco. Esta está enlazada con un DirListBox y este último con un FileListBox.
Lo que hace este procedimiento es: cuando cambiás de unidad de disco el cambio se ve reflejado en la lista de directorios y en la de archivos.
Ahora... que sucede si seleccionás la diskettera como drive y no hay ningún disco puesto? SE CUELGA TODO!!!
Mientras se está diseñando no pasa nada, tira el errror y vuelve al IDE. Pero en un programa ya compilado y funcionando es faltal. Tira un error y se cierra el programa sin más.
Entonces le ponés la línea "On Error GoTo errores" al principio para que en caso de error saltee todo y salga por ahí.
Notese el uso de GOTO, en este caso es necesario, es una de las pocas excepciones ya que esta instrucción no se usa nunca salvo en casos como este.
En ése caso salta a la línea "errores", evalúa el error, si es dispositivo no listo tira el error, define nuevamente C: y sale del procedimiento.
Voy a ver si puedo publicar toda la lista de errores de sistema de VB para que puedan aplicarlos en otras circunstancias.
Salu2.