There's a fair amount of scattered, occasionally-conflicting information about running Diablo 1 (the first Diablo game) under Windows 7. (If you found this post, you've probably already seen some of this info.) Here are my experiences.
Out of the Box:
Diablo 1 will install and run under Windows 7. However, the original unpatched version of the game stores multiplayer character files in the WINDOWS directory. This means you have to run the game as Administrator. (Running the game from the CD automatically prompts you to do this.) If you don't, you won't be able to create a new multiplayer character or see any of the multiplayer characters you created during previous sessions. (I haven't messed with single player.)
Connecting to Battle.net results in a long pause with the message "Searching for the fastest Battle.net server...", which eventually times out after about 1 minute with a "Could not connect" error message.
It is also not possible to play multiplayer across a LAN using IPX because Windows 7 no longer supports IPX. I installed Windows XP Mode with Virtual PC. While this allows for IPX, it is not a solution because DirectX will not work under XP Mode. This means the game won't even start under virtual XP.
IPXWrapper:
Instead, I went back to Windows 7 and used IPXWrapper. You just need to copy the 3 provided .dll files into your Diablo directory to do this. (This code seems safe. I skimmed the source, which is well-formatted, and I didn't notice anything obviously strange. I haven't had any strange new processes or network connections made since running it, either.)
I was trying to play Diablo between a Windows 7 and a Windows XP machine. Note that IPXWrapper is tunneling IPX over UDP, so you can't play using IPXWrapper with a machine that is natively running IPX. All the machines involved need to be using IPXWrapper. But using IPXWrapper is actually easier than installing and configuring IPX on Windows XP anyway, so this is not a hardship once you know about it.
Patching:
Having to run Diablo as Administrator annoyed me somewhat. I was also curious if I could get Battle.net to work. (It is no longer listed even on the Battle.net Classic site).
Installing the latest patch to 1.09 means Diablo will now save multiplayer characters in the diablo/ game directory. Thus, running as Administrator is no longer required. Also, I could now connect to a Battle.net server. (I did not bother actually creating an account and logging on, though.)
Bad/Broken Colors:
Patching breaks the color palette, though. This is obvious in the opening Blizzard animation and in the game itself (though the pre-game menus look fine). Some have reported luck with the Compatibility settings, but none of the combos I tried worked for me. (For example, setting the mode to Win98 or earlier meant the game couldn't find the CD-ROM anymore.)
The weird trick some have reported of opening the Windows Screen Resolution settings window and leaving it open in the background also did not fix this for me.
(2014-06 Update: The explorer-based fix below no longer works on my system. However, see Mary's comment on this post about a simple registry fix from Blizzard that solves this problem.)
What did work was: start Diablo, Alt-Tab and open the system Task Manager, and kill explorer.exe. Then Alt-Tab back to a correctly-colored Diablo. (Weird, I know.) When you're done with the game, you can return to the task manager and File -> New Task (Run...) -> explorer.exe again to bring back your task bar, etc.
As reported elsewhere, you can automate all this with a simple batch file. Save the following into a file named diablo.bat in your Diablo game directory:
taskkill /f /im explorer.exe diablo.exe pause start explorer.exe
You can now change your start menu shortcut to point to diablo.bat instead of diable.exe. You just have to hit any key in the console window after you quit Diablo bring back explorer. (Annoying side-effect: this closes any open Windows Explorer windows too.)
All told, unless you are running into some of the game bugs fixed by the patch or want Battle.net access, it's probably easier to just set the original unpatched version to run with Administrator priviledges. Also, if you do patch, all games must be patched to the same level to play over IPX.
On a related sidenote, Diablo 2 runs fine for me out of the box under Windows 7.