Following up on the idea of @UlrikeFischer here is a way how to use it with a smooth user interface, i.e. the syntax is
\item[<mark>](<text before label>)
Note that both arguments are optional:
\begin{itemize}
\item one
\item[+] two
\item(text) three
\item[--](text) four
\end{itemize}
Moreover, I added a checker for the width of the text preceding the items label that throws out a warning if the text exceeds the length of one line. Preceding textes that are not too overlong, i.e. two lines, can still be handled by this solution.

Complete Code
\documentclass{article}
\usepackage{lipsum}
\makeatletter
\let\ltx@item\item
\def\item{\kernel@ifnextchar[{\item@}{\item@[\@itemlabel]}}
\def\item@[#1]{\kernel@ifnextchar({\item@@[#1]}{\item@@[#1]()}}
\def\item@@[#1](#2){\ltx@item[#1]\itemc@mment{#2}\ignorespaces}
\def\itemc@mment#1{%
\@tempdima\dimexpr\oddsidemargin+\hoffset+\itemindent+1in\relax
\setbox0\hbox{\ignorespaces#1}%
\ifdim\wd0>\@tempdima
\@latex@warning{Overfull item comment
(\the\dimexpr\wd0-\@tempdima\relax)}\fi
\ifdim\wd0>\z@
\hspace{-.67em}
\makebox[\z@][r]{%
\smash{\parbox[t]{\dimexpr\@tempdima-.175cm\relax}{%
\setlength\parindent\z@
\addtolength\baselineskip{-.33em}
\ifdim\wd0<\@tempdima\hspace{0pt plus 1fill}\fi#1}}
\hspace{.175cm}
}
\fi
}
\makeatother
\begin{document}
\begin{itemize}
\item one
\item[+] two
\item(text) three
\item[--](text) four
\item(text text text text text text text) five
\item six
\end{itemize}
\begin{itemize}
\setlength\itemindent{-1in}
\item one
\item[+] two
\item(text) three
\item[--](text) four
\item(text text text text text text text) five
\item six
\end{itemize}
\end{document}
Addendum
Note that this solution supports nested lists too.
\begin{itemize}
\item first
\begin{itemize}
\item sub one
\item[:] sub two
\item(text) sub three
\item[:](text) sub four
\end{itemize}
\item[+] two
\item(text) three
\item[--](text) four
\item(text text text text text text text) five
\item six
\end{itemize}
