Well, I can confirm you're not crazy. 😉
I cut-and-paste your code and tried the following:
$_SESSION["MM_UserGroup"] = 'access1';
//$_SESSION["MM_UserGroup"] = 'access2';
//$_SESSION["MM_UserGroup"] = 'denyme';
echo getUserConfiguration();
As I uncommented each line everything worked fine. I got 'access1', 'access2', and 'default' on my test page.
It looks like something else going on in your code is changing things before your function is called.
Do you have the proper session_start syntax and so forth at the top of the page before any other output? (http://us3.php.net/function.session-start)
I would also try var_dump on the $_SESSION["MM_UserGroup"] variable just before you call your procedure to make sure the value is what you think it is and that it's being set.
Anyhow, my 2 cents, and I hope you get this resolved!
Thanks!
Nathan