These instructions are based on using Verygreen's original size-agnostic SD image and installer which is explained here. I have modified his image so that it works for both CM9 (ics) and CM10 (jb) and attached it below (generic-sdcard... etc). It also is still valid for CM7.
You can get the CM9 ROM here, the CM10.1, CM10.2 and CM11 are official and on the CM site, get latest nightly here (you can get the CM7 ROMs at that site too). You can get GB, ICS and JB gapps zips here. CM9 needs gapps-ics... and CM10 needs gapps-jb-20121011... and CM10.1 needs gapps-jb-20130301 and CM10.2 needs gapps-jb-20130813 and CM7 needs a gapps-gb version. To get gapps compatible with CM11, go to this post.
Installing a ROM the first time
Download the ROM, gapp and image files and temporarily store them on your PC. Unzip the image zip (generic-sdcard... attached below) and you should end up with a 300MB .img file that will be used to make the SD. Leave the other two files zipped.
[B] EDIT: (2/18/15) - If you want to install the newer versions of CM11 with a newly burned SD you must start with the Snapshot version M11. There is something in the newer CM11 zips that causes the installation to not work. Once you have M11 working you can upgrade to the newer versions. See bowguy's post in this thread here: http://forum.xda-developers.com/show...php?p=56782698.
EDIT: (6/8/14) - Updated image to rev8c to fix a minor script error that prevented installation of CM11 post 5/15 and removed a couple of gapp apps that interfered with installing kitkat gapps. This version may be used on all versions of CM. If you already made a prior rev8 SD, just use the uRecRam rev8c rar to update the SD as described below.
EDIT: (12/10/13) - Updated image to rev8b to create a larger /system to accommodate the larger CM11 and kitkat gapps for 8 and 16GB SDs. If you are installing CM11 to an 8 or 16GB SD, I recommend you start fresh with this version so that a larger /system is created. If you are on a 32GB or larger SD, then the prior rev8a is ok. And CM11 cannot be run on a smaller than 8GB SD.
EDIT: (12/9/13) - Updated the image again to rev8a to fix a permissions issue when installing the KitKat gapps. If you already made a rev8 SD, just use the uRecRam rev8a rar to update the SD as described below.
EDIT: (12/6/13) - I just updated the image file to rev8 to make it compatible with CM11 and to make the boot partition 400MB instead of 300MB to accommodate the larger CM and gapps zips. And this version still works properly on all previous CM versions. But, if installing CM7, it is best to use rev7 or earlier.
EDIT: (8/28/13) - I just updated the image file to rev7 to make it compatible with CM10.2. This version still works properly on all previous CM versions. If you were having trouble with the installer not creating the partitions or installing ROMs because of a poor SD, rev7 also has the revised kernel that is more tolerant of poor SD cards and seems to install smoother than rev5 or earlier versions. Also as of the 4/14/13 version of CM10, this same fix is included in the ROM kernel to help it run better with poor cards. Big thanks to bytte and steven676 for providing this new kernel.
For those users that want to upgrade their existing SD without reburning with the new image, I have also attached an archive of the updated boot file needed to upgrade. Just extract the file (uRecRam) and copy it to your existing SD boot partition, replacing the file that is there. Then you can update your earlier CM10.1 installation with CM10.2. You must update the gapps too. You can also do the same for rev8a, rev8b and rev8c, but the boot partition will remain 300MB unless updating a rev8 SD.
In Windows use Win32diskimager or WinImage to burn the image file to your SD (Sandisk Class 4 is the recommended brand). Win32diskimager is free on the web and WinImage is shareware but can be used free to burn images to SD. Be sure to use an external card reader rather than any built in reader in your PC. The built in reader may work but many have found them to be problematic for burning bootable SDs. And it is best to run the programs in administrator mode. In WinImage use the "Restore Virtual Disk Image to physical drive" rather than "write disk". In Linux or OSX, use the "dd" command to burn the image to SD.
To use Win32DiskImager, find it on the web (here, it's free) and install it on your Windows PC. Open it (be sure to run it as administrator) and select the drive (device) that has your card reader with your SD inserted. Then in the image file box put the location where you have the extracted img file. Then when everything is set right, click on the write button. A warning will pop up asking if you want to proceed. When you have verified that you are going to write to the correct device, click on Yes. (One user overwrote their external USB hard drive by not verifying first). If you get an error message about access denied, it means you are looking at the drive with Windows Explorer. Close Windows Explorer and try again. In fact, it is a good idea to close all unnecessary windows when burning, even your browser.
Once the SD is burned, temporarily remove the SD from the PC and then reinsert in your PC. Then copy the two other zip files (CM ROM zip and gapps zip) to the SD. Make sure the CM zip begins with cm- and the gapps zip begins the gapps- and both end in .zip. (Don't worry that the SD is now smaller than its original size. That is part of the process in making the SD usable as a bootable SD capable of running CM).
Take the SD out of the PC and insert it into your powered off Nook Color. Power on the Nook and the SD will take over. It will show a little penguin and a bunch of scrolling text. It will first partition the SD into those partitions necessary to run a ROM. Then it will install CM followed by installing gapps. It will then power down. Power it back up and it should boot to your new CM. Follow the on-screen instructions to set up the Google apps.
If you get stuck on any of the steps or you just want more information on installation, you can look at Taosaur's excellent blog on installing CM7 to SD. The principle is the same, just substitute CM9 or CM10 for CM7 in his blog and use the files from above. See his blog here.
Adding some tools
If you want to read some tips about how to make your SD install work a little better, look at my tips thread linked in my signature. In particular look at the tips in section B in my second post of that thread.
I recommend that all users add the Alternate CWM for SD as explained in section B5 of my tips thread referenced above. That allows you to clear the dalvik-cache or fix permissions if you need to after a ROM install. It also has the added benefit of allowing you to make a Nandroid backup of the installation. But heed the warning that you CANNOT flash ROMs to SD with it. You must use the verygreen script installer as explained in the next section. You can get the Alternate CWM for SD here and installation is very simple.
I also recommend that all users install my sdboot script from item B4 of my tips thread so they can use the CMUpdater, GooManager or CyanDelta to update their devices while the SD is still in their Nook as described later.
If you want to later flash an updated CM ROM or gapps zip, put the updated zip file(s) on the boot partition like you did originally and boot. But you need to be sure they are named properly or the installer script will not recognize them. They need to begin with cm-, update-, diiff_, or gapps and end in .zip. After the first tiny flash of the screen, hold the "n" button. The boot menu will come up and you can select the SD recovery and finish booting. The zip(s) will be automatically installed by the SD recovery (the script installer, a little penguin with scrolling text). Or, if you use sdboot as described later, you can just use the power off menu to select reboot and then choose recovery. It should boot automatically to SD recovery so the script installer can install the file you copied to sdboot.
Ordinarily if you are updating the same ROM (eg, CM10 over a CM10) you do not need to wipe anything. But sometimes if the ROM does not boot properly, you may want to clear dalvik-cache with the Alternate CWM for SD that I talked about earlier. If you are installing a different ROM (eg, CM10 over CM9 or CM7) you should either re-burn the SD or wipe system, data and cache with the Alternate CWM for SD. If you re-burn, the SD will be clean, but you will also lose all files in your SDCARD partition (including any backups that you may have put there).
Using CMUpdater, GooManager, or CyanDelta on SD installs
You can use these tools as long as you have your Nook set up properly. For most SD users there is no easy way to copy a zip from the sdcard partition to the boot partition while the card is still in the Nook. And if you take the card out to put it in your PC, you can access the boot partition but not the sdcard partition where the file is stored. The solution is to go to my tips thread linked in my signature and look at item B4. It tells you how to install a script that mounts the boot partition as 'sdboot' under your root directory. Just use a file manager to copy the file from SDCARD to /sdboot. Then use the power off menu to boot to recovery. The script installer will install it as long as it is named properly as described above.
CM has a new feature (CMUpdater) that makes it easy to download and install updated CM 10 ROMs for those users on emmc. Just go to settings, about tablet, CyanogenMod updates, and follow the prompts. But for SD users you need to be careful, as it may try update your emmc when you are wanting it to update the SD. It will boot to the SD recovery and do nothing, but the next time you manually boot to CWM or TWRP on emmc, it will install it on emmc. You can still use CMUpdater to download the zip, but when it finishes and asks if you want it installed, you have to choose cancel. The ROM zip is downloaded to /sdcard/cmupdater. You need to copy that file to your boot partition (sdboot) and boot to SD recovery and the script installer will install it.
With GooManager you download a small zip that only has the changed files in it and you flash that. And that works on SD installs as long as you use the script installer. Just copy the diff_ file to the boot partition (sdboot) and boot to SD recovery. With GooManager you can choose which directory you want to download to, so you can tell it to directly download to sdboot. No need to copy later. GooManager does not currently host the CM10 zips. But they do host the Paranoid Android zips.
With CyanDelta, you use an app installed from Play Store. That app reads, modifies and stores your current ROM zip on your SD for future use. Then, when an update is available, it downloads a small (about 5-10MB) delta file from their site and modifies and renames that stored zip so it has the changes in it. So what you flash is your complete previous ROM zip that has the changed files inserted into it, replacing the ones that were changed. You can use that modified ROM zip with the SD install. Just be sure to only download the delta and let the app modify the zip. Do not let it proceed with installation. The newly modified ROM zip will be in /sdcard/CyanDelta (with the new date). Copy that to the boot partition (sdboot) and boot to SD recovery. The only issue I see is, as part of their modifying they have obviously reduced the compression level of the zip and the normal 150MB zip becomes 250MB. That means you need that much space on your boot partition. If you used my new image file to make your SD in the first place, it should fit since I increased the boot partition size to 300MB.
For questions or comments on the installation procedure comment on this thread. For comments or questions on the CM9/CM10 ROMs comment in the CM9/CM10 Discussion thread here or the CM10 General Discussion & Q&A thread here.
EDIT 1 and 2 removed