A me capitò di doverla fare per lavoro 'sta cosa di installare dei pacchetti in posti diversi da quello previsto, qualche anno fa.
Il mio cliente aveva deciso di farlo per questioni di sicurezza legate a non so quale certificazione ISO-XXXX...
E' un gran bordello, perchè i pacchetti sui sistemi Linux/Unix contengono un sacco di riferimenti a librerie che stanno in /etc, ad altri eseguibili (/bin, /usr/bin) a file di log (/var/*) ed ad altra robaccia (/opt) ed altre mille diavolerie.
Sui sistemi Debian-like tipo Ubuntu c'è la possibilità di installare un pacchetto con l'opzione --root, che permetterebbe di installare i file del pacchetto su un'altra directory a tua scelta, ma poi a mano dovresti fare i salti mortali per linkare tutti i file necessari all'eseguibile principale di quel pacchetto nella sua location esotica.
Morale: si può fare (si può fare tutto su Linux, pure riscrivere da capo il programma e ri-pacchettizzarlo), ma è un bagno di sangue.
Per quanto riguarda VirtualBox sono solo una quarantina di Mb, l'importante è che l'hard disk virtuale .vdi lo crei sull'HD meccanico.
Se hai la /home separata a 20 Gb di software non ci arrivi nemmeno se installi mezzo mondo, tranquillo. Questo è perché su Linux i programmi condividono il più possibile le librerie ed i file di sistema, mentre su Win capita spesso che su 40 programmi installati ci siano un sacco di file doppi/tripli/cinquantupli, ognuno nella sua bella sottodirectory di C:\Programmi.
Un'altra soluzione potrebbe essere l'implementazione di
UnionFS, che però non so bene come funzioni e non dev'essere semplice da maneggiare