Forse in realtà basta impostare l'autorun.inf di detta chiavetta in modo tale da avviare il file su disco fisso (basta impostarne il percorso correttamente).
In alternativa, scrivendo un programma in C/C++, si può lavorare con le notifiche della shell (cosa che non ho mai fatto e che ha l'aria di essere piuttosto incasinata), oppure monitorare costantemente (polling) le unità disponibili nel sistema ed effettuare le azioni appropriate quando ne compare una nuova.