Something of the style:
\documentclass{article}
\newlength{\blob}
\settowidth{\blob}{MELISSA}
\begin{document}
\makebox[\blob][l]{BOB} Hello, Melissa.
\makebox[\blob][l]{MELISSA} Hello, Bob.
\end{document}
will work if the dialogs are less than one line. If the dialogs could be longer, you could try to use hanging paragraphs:
\documentclass{article}
\usepackage{hanging}
\newlength{\blob}
\settowidth{\blob}{MELISSA } %% longest with space
\newcommand{\start}[1]{%
\parindent0pt
\everypar={\hangpara{\blob}{0}}
\makebox[0pt][r]{\makebox[\blob][l]{#1}}%
\ignorespaces
}
\newcommand{\dstop}{%
\parindent0pt
\everypar={}
}
\begin{document}
\start{BOB} Hello, Melissa.
\start{MELISSA} Hello, Bob. Speaking Speaking Speaking Speaking
Speaking Speaking Speaking Speaking Speaking Speaking Speaking
Speaking
And more speaking speaking speaking...
\dstop
Normal paragraph here
\end{document}
Which gives:

You can easily modify \start and \dstop macros to change fonts, add skips etc. that can make the dialogs easier to read.
\leftskip=16pt \parindent=-16ptat the beginning of my document to create that "hanging" indent, without needing to repeat anything (like your command\start), as recommended by this answer http://tex.stackexchange.com/a/140244/9757 Is there a way to "get" the length ofMELISSA, so I could do something like\leftskip=\length{MELISSA}? – jamaicanworm Nov 27 '13 at 02:36\settowidth(probably with some corrections of a space). – Przemysław Scherwentke Nov 27 '13 at 02:43\leftskip=\blob \parindent=-blob– jamaicanworm Nov 27 '13 at 05:06