I think there is a bug here.
Introduction
I use latex2html (L2H) to build some HTML Pages from LaTeX. The standard method to add L2H specific latex command is like this
\begin{htmlonly}
% for L2H eyes only
\end{htmlonly}
This has been working fine for years. Hence the method to build the same LaTeX document with L2H and with pdfLaTeX is to do this
\documentclass{article}%
\usepackage{html}
\usepackage{ifpdf}
\begin{document}
\begin{htmlonly}
%l2h only
\end{htmlonly}
%\begin{latexonly} % WARNING, SPECIAL COMMENT DO NOT REMOVE
\ifpdf
%for pdflatex only
\fi
%\end{latexonly} % WARNING, SPECIAL COMMENT DO NOT REMOVE
\end{document}
and now I can do pdflatex foo.tex and do latex2html foo.tex and both are happy.
Problem when using tabu package
Now I wanted to use tabu package in pdfLaTeX only. So I used the above set up and wrote
\documentclass{article}%
\usepackage{html}
\usepackage{ifpdf}
\usepackage{longtable}
\usepackage{tabu}
\begin{document}
\begin{htmlonly}
\begin{tabular}{|l|l|}
\end{htmlonly}
%\begin{latexonly} % WARNING, SPECIAL COMMENT DO NOT REMOVE
\ifpdf
\begin{longtabu}{|l|l|}
\fi
%\end{latexonly}
a&b\\
c&d\\
\begin{htmlonly}
\end{tabular}
\end{htmlonly}
%\begin{latexonly} % WARNING, SPECIAL COMMENT DO NOT REMOVE
\ifpdf
\end{longtabu}
\fi
%\end{latexonly}
\end{document}
and now when I do pdflatex t9.tex I get this error:
(./t9.out) (./t9.out)
! Misplaced alignment tab character &.
<argument> \fi \par a&
b\\ c&d\\ \par \par \begin {htmlonly}
l.22 \end{tabular}
Which means tabu is looking at the tabular env. But this environment should never been seen by tabu.
Compare the above now, when I just use longtable. No tabu now. It works:
\documentclass{article}%
\usepackage{html}
\usepackage{ifpdf}
\usepackage{longtable,tabu}
\begin{document}
\begin{htmlonly}
\begin{tabular}{|l|l|}
\end{htmlonly}
%\begin{latexonly} % WARNING, SPECIAL COMMENT DO NOT REMOVE
\ifpdf
\begin{longtable}{|l|l|}
\fi
%\end{latexonly}
a&b\\
c&d\\
\begin{htmlonly}
\end{tabular}
\end{htmlonly}
%\begin{latexonly} % WARNING, SPECIAL COMMENT DO NOT REMOVE
\ifpdf
\end{longtable}
\fi
%\end{latexonly}
\end{document}
and now no error
>pdflatex t9.tex
This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian)
restricted \write18 enabled.
.....
Output written on t9.pdf (1 page, 10799 bytes).
Transcript written on t9.log.
>
question is: why is tabu reading my htmlonly code?
I need to use longtabu since I read it can make longtable with same settings as tabularx which I needed.
I am using (TeX Live 2012/Debian) on Linux mint 14.

tabuas there is for other packages. – egreg Feb 3 at 20:23\end{tabular}behind the\end{longtabu}. Currently the htmlonly\end{tabular}is (quite unnecessarly) inside a cell and this is quite dangerous - even with less complex tabular commands then the one provided by tabu (you would get similar problems e.g. with amsmath tabulars). – Ulrike Fischer Feb 4 at 8:23