deposit: it will put a value to a signal, but it will hold until it is overwritten.
for example if I 'deposite' a Q of a flip flop to a '0', it will remain a '0', untill the simulation updates it to a new value. It is like giving a initial value to a signal.
freeze: it will put a value to a signal, and this value will remain as such throughout the simulaiton. It cannot be overwritten by simulation.
drive: it will upt a value to a signal, and if it is updated by simulation, it will then 'resolve' to a new value. Say if you dirve a signal to '1', and simulaion value is '0', then the signal will go 'X'
Hope it helps
Kr,
Avi