Thanks for the reply, but I found the problem.
When the microcontroller is connected via the MCU project board and run from CodeWarrior, CodeWarrior reads the SPISR and resets the SPIF. However, when you remove the microcontroller and run it off an external source, the SPISR_SPIF should be zero on power on/reset, but it's not. Prior to intializing the SPI registers, I added:
volatile unsigned char status;
SPISR = status;
to clear the SPIF by reading the SPISR register (
I'm not sure if it's a hardware logic bug on reset, or something I overlooked in the reference manual, but those two lines of code solved the SPI problem. I hope that helps someone else out.