I have code that gets all the Feature Datasets in a database in order to loop through them and find the one I want. This code returns 2 datasets of 24 in an SDE 9.2 database, but 3 datasets of 24 in a version 10 SP 2 database. The user has at least select permissions on all 24 of them, but the code only returns certain ones (and different ones). The code is very simple, shown below. What the heck is going on?

This does not completely answer your question on why get_Datasets does not work as advertised, but this should get you the results you are after. I was having the same problem with a personal geodatabase, where the result sets were inconsistent and this solved the problem.