Did have a similar problem.
In my case, the problem occurred after I issued the following command:
# svcadm milestone -d milestone/single-user:default
The -d option made milestone/single-user:default the default milestone.
So, everytime that I was booting the server, the server was going to milestone/single-user
Cleared the situation with
# svcadm milestone -d all
# init 0
ok boot
My understanding is that milestone all is the default milestone when Solaris 10 is installed out of box.