When I mean "without having to extract
it first", I mean not having to
extract the entire archive to my hard
drive and then convert it to ISO.
The bad news: you will have to extract it.
The good news: you don't have to extract it to your hard drive, you can do it all by piping to stdin, so it all happens in memory (which is basically what converting would do).
bzip2 -dc), both can be installed with cygwin. Then it's just a matter of:
bzcat file.bz2 | mkisofs -o image.iso -stream-media-size #
file.bz2 is your archive and
# is the media size in sectors.
If your archive is actually a bzipped TAR archive, something like this would be more appropriate:
tar --to-stdout xjf file.tar.bz2 | mkisofs -o image.iso -stream-media-size #