After trying almost everything, I eventually found the solution.
It appears that, if you change the default datafile locations, this is recorded in the registry. So I searched the registry for E:\Data, and found a registry key that matched my requirements:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQLServer\DefaultData
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQLServer\DefaultLog
I changed those values to the C:\ drive, and reran the setup.. and it worked