R, 119 112 106 106103 bytes
-7 bytes from aliasing the two longer function names and now taking user input from scan()
-6 bytes to only call strsplit() once at the beginning
-3 bytes to get rid of the aliasing again and assign two variables in one call
(Also edited the byte count which was erroneously low earlier)
a=scan(,'');u=unlist;a=strsplit;b=a=strsplit(a,'');b=a[1];for;for(i in 2:length(a))b[[i]]=vecsets::vsetdiff(u(a[i])a[[i]],uunlist(bb[1:i-1]));b This is my very first PPCG submission of any kind! So I have no idea what I'm doing both in terms of golfing and in terms of posting etiquette. The output is a list of vectors which may or may not meet the terms of the challenge. :-P
As for the code itself, it takes user input via scan() and compares each new day's letters to the cumulatively owned letters, as in other solutions. If there are shorter alternatives to unlist and strsplit for converting strings into vectors of individual characters that would be cool to know. I also used the vsetdiff function in Carl Withoft's vecsets package to get the set difference of the letters needed for the next day and the current letters owned.