Pagination on Custom Post

When you use WP_Query to get post from database, you must have to use next_posts_link() with max_num_pages parameter for our current query.

You can do this as below.

<?php next_posts_link('More &raquo;', $packages->max_num_pages) ?>

Now your code will become this. I have made above changes in following code.

<div class="eight columns">
    <ul>
    <?php

        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $packages = new WP_Query( array( 
            'post_type' => 'articles', 
            'posts_per_page' => 2, 
            'orderby'=> 'menu_order', 
            'paged' => $paged
        ));

        if( $packages->have_posts() ) : while( $packages->have_posts() ) :
           $packages->the_post();
                ?>

        <li class="twelve columns">
            <div class="articles">
                <div class="contents">
                    <h2><?php the_title(); ?></h2>
                    <span><?php the_time(get_option('date_format')); ?></span>
                        <div class="featured-image">
                            <?php if ( has_post_thumbnail()) { $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large'); echo '<img src="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" alt="' . the_title_attribute('echo=0') . '">';  } ?> 
                        </div>

                        <p><?php the_excerpt(); ?></p>
                </div>
            </div>

        </li>

        <?php  wp_reset_postdata(); ?>


        <?php endwhile; else: ?>

          <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>

        <?php endif; ?>

        <div class="alignleft"><?php previous_posts_link('&laquo; Previous') ?></div>
        <div class="alignright"><?php next_posts_link('More &raquo;', $packages->max_num_pages) ?></div>

    </ul>
</div>