It is best to store files on the D drive (leave drive C's space for any application installation. From wiki::
Common Drive assignments::
A: — Floppy disk drives, 3.5" or 5.25", and possibly other types of disk drives, if present.
B: — Reserved for a second floppy drive, if present.
C: — First hard disk partition.
D: to Z: — Other disk partitions get labeled here.
The letter D: or E: are often assigned to CD-ROM, DVD drives but not always.
F: — First network drive if using Novell NetWare
N:, O:, P: - Assignable "floating drives" under CP/M-86 4.x, Personal CP/M-86 2.x, DOS Plus 1.2-2.1 (via BDOS call 0Fh)
Q:, Microsoft Office Click-to-Run virtualization
Z: — First network drive if using Banyan VINES, and the initial drive letter assignment for the virtual disk network in the DOSBox x86 emulator.
The C: drive usually contains all of the Windows operating system files required for operation of the computer. On many modern personal computers, only one hard drive with one partition is present, so it is designated C:. On such a computer, all of a user's personal files are often stored in directories on this drive as well. These drives can, however, be different.
When there is no second physical floppy drive, the B: can be used as a "virtual" floppy drive mapped onto the physical A: drive, whereby the user would be prompted to switch floppies every time a read or write was required to whichever was the least recently used of A: or B:. This allows for much of the functionality of two floppy drives on a computer that has only one.
Network drives are often assigned letters towards the end of the alphabet. This is often done to differentiate them from local drives: by using letters towards the end, it reduces the risk of an assignment conflict. This is especially true when the assignment is done automatically across a network (usually by a logon script).
In most DOS systems it is not possible to have more than 26 mounted drives. The DR PalmDOS PCMCIA driver stack supports drive letters 0:, 1:, 2:, ... to address PCMCIA drive slots. Some Novell network drivers for DOS support up to 32 drive letters under compatible DOS versions. In addition to this, Novell DOS 7, OpenDOS 7.01 and DR-DOS 7.02 genuinely support a CONFIG.SYS LASTDRIVE=32 directive in order to allocate up to 32 drive letters, named A:-Z:, [:, \:, ]:, ^:, _: and `:. (DR-DOS 7.02/7.03 also supports HILASTDRIVE= and LASTDRIVEHIGH= directives in order to relocate drive structures into upper memory.) Some DOS application programs don't expect drive letters beyond Z: and won't work with them, therefore it is recommended to use them for special purposes or search drives. JP Software's 4DOS command line processor supports drive letters beyond Z: in general, but since some of the letters clash with syntactical extensions of this command line processor, they need to be escaped in order to use them as drive letters. Windows 9x (MS-DOS 7.0/MS-DOS 7.1) added support for LASTDRIVE=32 and LASTDRIVEHIGH=32 as well. If access to more filesystems than Z: is required under Windows NT, Volume Mount Points must be used.[7] However, it is possible to mount non-letter drives, such as 1:, 2:, or !: using the command line subst utility in Windows XP or Vista (i.e. "subst 1: c:\temp"), but this is not officially supported and may break programs that assume that all drive letters are A-Z.
In fact, Windows assigns the next free drive letter to the next drive it encounters while enumerating the disk drives on the system during installation. Drives can be partitioned, thereby creating more drive letters. This applies to MS-DOS, as well as all Windows operating systems. Windows offers other ways to change the drive letters, either through the Disk Manager (Windows NT, 2000, XP and later) or through the Device Manager found in the Control Panel. MS-DOS typically uses parameters on the line loading device drivers inside the config.sys file.