I have a confession to make.
For the first five years of my professional career, I was a .NET programmer. The first four of those years, I wrote almost no code for the web. It was only the last year as a .NET developer that I started writing web applications.
That's not my confession though; there's nothing inherently wrong with working with .NET. My confession is this: even though I became a web developer, I hated HTML and JavaScript, two of the only things that actually made me a web developer. C# was my language of choice. It was annoying to me that I had to change context whenever I needed to do some view or client-side work. I think that I actually looked down on that part of my job. So when I had to write some HTML or JavaScript, I'd do it as quickly as possible so that I could get back to the "real work" which, of course, is done with C#.
It was only after leaving the .NET world that I saw the error of my ways. If you are a web developer, the browser is the only place where your users actually interact with all of that great backend code that you write. And the only way for you, as a web developer, to exhibit your code in the browser is with HTML and CSS. Even if that backend code is the most brilliant, or the cleanest, or whatever superlative you want to apply to it; the user only sees the visible parts as seen through the browser.
What does this mean? Certainly, if the UI is the last thing that you consider when implementing a feature, and you rush to "just make it work", you are likely failing your users. Remember that the only way that you can make an impression on your users is through what they see. If they see an unusable mess, then your application is an unusable mess. It also means that it is imperative that you craft your HTML and CSS just as you do your backend code. You must give it the time and respect that it deserves.
There is no excuse for a web developer to not know HTML and CSS in this day and age. If you are capable of writing complex backend code, then writing clean, semantic and cross-browser compatible HTML and CSS should be a breeze. Yet I have heard managers say that their developers aren't capable of producing this code. I have heard developers disparage the work that is involved in crafting HTML and CSS. I call shenanigans. Being lazy towards your craft is not okay, just as making excuses for being lazy is not okay.
For Web Developers
Learn about the right way to write your HTML and CSS markup. Stop making messes. Stop making excuses. Writing code that the browser happens to interpret is not below you. If you are unsure, this is What Beautiful HTML Code Looks Like. If you are looking for a starting point to begin to improve your front-end skills, check out the Opera Web Standards Curriculum.
For Managers
Stop making excuses for your web developers. Hold your developers to a higher standard. Encourage them to learn how to create clean, semantic code; or better yet, show them. If they really are incapable of generating valid HTML markup, it's unlikely that they can produce quality code on the backend. Perhaps they should not be working for you as a developer.