I just took a look at your defines:
//define commands
#define initalize B00001100
#define clearHome B00000001
#define blinkCurs B00001111
#define line1Curs B10000000
#define line2Curs B11000000
-Your 'initialize' command looks incorrect to me. Since this is the command that you send three times to 'reset' the controller it should be 0x30 or B00110000.
-As you have seen you also need a 'function' command to set the number of lines. This would be 0x38 or B00111000. (You could also use this for 'initialize' since the controller ignores the lower four bits during reset). Make sure to send the 'function' command immediately after the three 'initialize' command and nowhere else in the program.
-Do you recognize 'line2Curs'?. It is 0x40 with the high bit set --> 0xC0, just what you should have been using before. Likewise 'line1Curs' is 0x00 with the high bit set --> 0x80.
Since you are dealing directly with the LCD controller (rather than using a library written by someone else) you might be interested in some more information about that controller. Follow the LCD Addressing and LCD Initialization links at http://web.alfredstate.edu/weimandn.
Don