%userprofile% è sempre definita sui sistemi di famiglia NT (salvo forse se il .bat viene eseguito da un servizio), se non funziona avrai scritto male; su Windows 9x/ME non c'è (per il semplice fatto che la "home" dell'utente corrente non esiste), ma nel 2014 spero che si possano non considerare sistemi così vecchi.
Quanto al resto, lasciare nomi hardcoded negli script è pessima pratica, visto che se si cambia qualcosa bisogna rimettere mano a tutti gli script. Usa le variabili d'ambiente e vivi felice.