Before you do anything else: Is it your own server or are you hosted by someone else? If it isn't your server, start by asking the host. It's no use tearing your hair out over htaccess or config files when the problem is happening further up the line.
Did you inherit the package from someone else? Do you actually have subdomains ("blahblah.example.com")? Is everyone under the same DNS?
You need to look from the top down. Config files, directory, htaccess. Somewhere there is a redirect saying (in English) "If the host is not exactly www.example.com, send them to myfavoritesubdomain.example.com." Obviously this is not what you want, though maybe it's what some previous version of the domain did want. Or maybe the redirect is just badly written.
What it should be doing instead is either append www. to any request that doesn't already have it, or remove www. from any request that does have it. It's your choice, but you need to specify one or the other. Make it a redirect, not a rewrite. This is to avoid the dreaded Duplicate Content problem, where search engines think www.example.com/index.html and example.com/index.html are completely different places.