[eluser]CroNiX[/eluser]
Look at the loader class. It's not consistent. Some will search for the name as is and if it doesn't find it it checks to see if a lower-cased version exists and loads that if it does.
Personally, I write filenames that I create in all lower-case, except when extending a core class with MY_
I define classes with upper-case first letter (class Some_class extends CI_Controller)
When using the loader, I always use lower-case ($this->load->library('test'))
When referencing something that has been loaded, I always use lower-case ($this->test->some_method())
And never have any problems, regardless of operating system.